链接: https://www.nowcoder.com/acm/contest/59/D
来源:牛客网
题目:
给你一个1 -> n的排列,现在有一次机会可以交换两个数的位置,求交换后最小值和最大值之间的最大距离是多少?
输入:
第一行一个数n,之后一行n个数表示这个排列
输出:
输出一行一个数表示答案
示例1
输入:
5
4 5 1 3 2
输出:
3
MY DaiMa:
#include<stdio.h>
int main()
{
int n,i,j,max,min,k,a[105],m;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
max=min=a[1];
j=m=1;
for(i=2;i<=n;i++)
{
if(a[i]>max)
{
max=a[i];
j=i;
}
if(a[i]<min)
{
min=a[i];
m=i;
}
}
if(j>m)
{
if(j>n-m)
k=j;
else
k=n-m;
}
else if(j<m)
{
if(m>n-j)
k=m;
else
k=n-j;
}
printf("%d\n",k);
return 0;
}