Codeforces Round #354 (Div. 2) A

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Round #354 (Div. 2) A相关的知识,希望对你有一定的参考价值。

题目给出1~n的n个数的一个permutation,swap一次任意两个数,output 1 and n 之间的最大距离

记录1 and n的位置p,确定1的位置,移动n到位置1 and n,确定n的位置,移动1到位置1 and n,output max value.

O(n).

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

int n;
struct node{
    int num;
    int p;
};
node a[100+10];

int main(){
    while(scanf("%d",&n)==1){
        int b,d;
        for(int i=1;i<=n;i++){
            scanf("%d",&a[i].num);
            a[i].p = i;

            if(a[i].num == 1){
                b = a[i].p;
            }
            if(a[i].num == n){
                d = a[i].p;
            }
        }
        int maxn = -1;
        maxn  = max(max(abs(d-1),abs(d-n)),max(abs(b-n),abs(b-1)));
        printf("%d\n",maxn);
    }
    return 0;
}

 

以上是关于Codeforces Round #354 (Div. 2) A的主要内容,如果未能解决你的问题,请参考以下文章

Codeforces Round #354 (Div. 2) A

Codeforces Round #354 (Div. 2)

Codeforces Round #354 (Div. 2) B. Pyramid of Glasses (模拟+思维)

Codeforces Round #354 (Div. 2) C. Vasya and String

Codeforces Round #436 E. Fire(背包dp+输出路径)

[ACM]Codeforces Round #534 (Div. 2)