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