# Codeforces Round #354 (Div. 2) A Nicholas and Permutation(水题)

http://codeforces.com/problemset/problem/676/A
A. Nicholas and Permutation
time limit per test1 second
memory limit per test256 megabytes
inputstandard input
outputstandard output
Nicholas has an array a that contains n distinct integers from 1 to n. In other words, Nicholas has a permutation of size n.

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 integer n (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 the i-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 elements 1 and 2.

In the second sample, the minimum and the maximum elements will be located in the opposite ends of the array if we swap 7 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 swap 5 and 2.

1.不交换
2.把位置靠前的放在最前面
3.把位置靠后的放在最后面

#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;

int a[105];
int main()
{
int n;
while(~scanf("%d",&n))
{
int minx,maxx;
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
if(a[i]==1)
{
minx=i+1;
}
else if(a[i]==n)
{
maxx=i+1;
}
}
int s1=abs(maxx-minx);
int maxxx=max(maxx,minx)-1;
int minxx=n-min(maxx,minx);
int re=max(s1,max(maxxx,minxx));
printf("%d\n",re);
}
return 0;
}


• 本文已收录于以下专栏：

## Codeforces Round #354 (Div. 2)-Nicholas and Permutation

C. Vasya and String
• sinat_34263473
• 2016年06月02日 22:36
• 158

## Codeforces Round #258 (Div. 2)-(A,B,C,D,E)

A:Game With Sticks 水题。。。每次操作，都会拿走一个横行，一个竖行。 所以一共会操作min（横行，竖行）次。 #include #include #include #include ...
• rowanhaoa
• 2014年07月25日 14:39
• 1481

## 【解题报告】Codeforces Round #401 (Div. 2)

• TRiddle
• 2017年02月25日 17:55
• 413

## Codeforces Round #395 (Div. 2)(ABCD)

ps:打完这场cf才知道自己真的很菜，还是停留在AB题的水平，有时候CD其实很简单，但就是想不到，别人一眼看出而我就是想不到，有时候想到了点子上但就是突破不了 题目链接：  Codeforc...
• qq_34731703
• 2017年02月03日 12:50
• 500

## Codecraft-17 and Codeforces Round #391 (Div. 1 + Div. 2, combined) C. Felicity is Coming!组合学+集合

• ProLightsfxjh
• 2017年01月14日 01:28
• 572

## Codeforces Round #350 (Div. 2)（C）模拟

C. Cinema time limit per test 2 seconds memory limit per test 256 megabytes input ...
• qq_24489717
• 2016年05月06日 15:29
• 481

## Codeforces Round #378 (Div. 2) E. Sleep in Class

• Fsss_7
• 2016年11月15日 13:48
• 359

## Codeforces Round #460 (Div. 2) D. Substring（拓扑排序）

• cyf199775
• 2018年02月01日 13:55
• 43

## Codeforces Round #428 (Div. 2)：D. Winter is here（组合数公式）

D. Winter is here time limit per test 3 seconds memory limit per test 256 megabytes input stan...
• Jaihk662
• 2017年08月14日 14:52
• 349

## Codeforces Round #442 (Div. 2)

A. #include using namespace std; typedef long long ll; int main() { string s; cin >> s; ...
• Egqawkq
• 2017年10月24日 02:15
• 241

举报原因： 您举报文章：Codeforces Round #354 (Div. 2) A Nicholas and Permutation(水题) 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)