Nicholas and Permutation

原创 2016年06月01日 16:32:04

                                                                                  

                                                                                                    A. Nicholas and Permutation

Nicholas has an array a that containsn distinct integers from1 to n. In other words, Nicholas has a permutation of sizen.

Nicholas want the minimum element (integer 1) and the maximum element (integer n) to be as far as possible from each other. He wants to perform exactly one swap in order to maximize the distance between the minimum and the maximum elements. The distance between two elements is considered to be equal to the absolute difference between their positions.

Input

The first line of the input contains a single integern (2 ≤ n ≤ 100) — the size of the permutation.

The second line of the input contains n distinct integers a1, a2, ..., an (1 ≤ ai ≤ n), where ai is equal to the element at thei-th position.

Output

Print a single integer — the maximum possible distance between the minimum and the maximum elements Nicholas can achieve by performing exactly one swap.

Examples
Input
5
4 5 1 3 2
Output
3
Input
7
1 6 5 3 4 7 2
Output
6
Input
6
6 5 4 3 2 1
Output
5
Note

In the first sample, one may obtain the optimal answer by swapping elements1 and 2.

In the second sample, the minimum and the maximum elements will be located in the opposite ends of the array if we swap7 and 2.

In the third sample, the distance between the minimum and the maximum elements is already maximum possible, so we just perform some unnecessary swap, for example, one can swap5 and 2.


题意:

交换这个序列里面的两个数使最大的数和最小的数的距离最大,问这个最大的距离是多少;

思路:

把最大的和最小的分别和第一个和最后一个交换,最大的就是答案了;

AC代码:
#include<iostream>
#include<string.h>
#include<cmath>
#include<stdio.h>
#include<algorithm>
using namespace std;
int main()
{
	int a[101];
	int T;
	//int ma,mi,mid,dis;
	int Max,Min;
	while(cin>>T)
	{
		memset(a,0,sizeof(a));
		for(int i=1;i<=T;i++)
		{
			cin>>a[i];
			if(a[i]==1)
			Min=i;
			if(a[i]==T)
			Max=i;
		}
		//cout<<mi<<ma<<endl;
		if((Max-Min)==T-1)
		cout<<T-1<<endl;
		else
		{
			int ans=max(T-Min,T-Max);
			ans=max(ans,Min-1);
			ans=max(ans,Max-1);
			cout<<ans<<endl;
		}
	}
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

Permutation递归解法

permutation类型题的解法
  • a6219221
  • a6219221
  • 2016年09月07日 03:21
  • 423

排列组合(permutation)系列解题报告

本文讲解4道关于permutation的题目。 1. Permutation:输出permutation——基础递归 2. Permutation Sequence: 输出第k个permutatio...
  • abcjennifer
  • abcjennifer
  • 2014年10月18日 18:46
  • 9109

CF 482A(Diverse Permutation-相邻距离不同数为k的1~n全排列构造)

A. Diverse Permutation time limit per test 1 second memory limit per test 256 megabytes ...
  • nike0good
  • nike0good
  • 2014年10月31日 11:42
  • 1864

总结帖:全排列Permutation,子集subset 递归模板

两个经典递归模板,以前写过,现在再过一遍! 基本思路: 如果题目给的输入时数组,首先先要把数组转为ArrayList,因为ArrayList可以很方便地插入,删除,添加! 其次,递归函数的形式都一...
  • hellobinfeng
  • hellobinfeng
  • 2014年03月06日 05:51
  • 2943

[LeetCode]Permutation全排列和去重全排列

一、问题描述: 借助这道题总结一下全排列问题吧 https://leetcode.com/problems/permutations/ Given a collection of disti...
  • CristianoJason
  • CristianoJason
  • 2016年04月20日 14:02
  • 1936

数据结构基础(3) --Permutation & 插入排序

Permutation(排列组合) 排列问题: 设R = {r1, r2, ... , rn}是要进行排列的n个元素, Ri = R-{ri}; 集合X中元素的全排列记为Permutati...
  • acpchenpeng
  • acpchenpeng
  • 2016年01月28日 15:10
  • 197

《JavaScript高级程序设计(第3版)》.Nicholas.C.Zakas.扫描版.pdf

下载地址:网盘下载 内容简介 编辑 本书从最早期Netscape浏览器中的JavaScript开始讲起,直到当前它对XML和Web服务的具体支持,内容主要涉及Ja...
  • cf406061841
  • cf406061841
  • 2017年05月13日 00:13
  • 560

Permutation Test 置换检验(转)

Permutation Test 置换检验 显著性检验通常可以告诉我们一个观测值是否是有效的,例如检测两组样本均值差异的假设检验可以告诉我们这两组样本的均值是否相等(或者那个均值更大)。我们在实验中...
  • u011467621
  • u011467621
  • 2015年08月25日 09:18
  • 3605

详解STL中next_permutation()函数实现

前几天,遇到一个可以用穷举法解决的问题,就是中给定几个数子,让凑出等式的类型。之前,我都是用写个函数递归调用,今天突然想到其实有一个更简单的方式来实现穷举,那就是使用STL中的next_permuta...
  • kuaisuzhuceh
  • kuaisuzhuceh
  • 2014年01月18日 17:21
  • 1065

全排列问题算法及实现(Permutation)

前言 做项目遇到数据采集系统中ADC拼合问题,如果顺序不对,波形就是错误的(题外话),为了找到正确的顺序,涉及到排列问题。 什么是排列组合 定义 一般地,从n个不同元素中取出m(m≤n)个...
  • u011391629
  • u011391629
  • 2016年12月19日 21:23
  • 647
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Nicholas and Permutation
举报原因:
原因补充:

(最多只允许输入30个字)