题面传送门
这题因为他只能对头尾两个进行操作,所以根据分治思想,只要考虑头尾两个就好了
代码实现:
#include<cstdio>
#define abs(x) ((x)>0?(x):-(x))
using namespace std;
int t,n,a[100039],flag,tot,ans,head,tail;
int main() {
register int i;
scanf("%d",&t);
while(t--) {
ans=0;
scanf("%d",&n);
for(i=1; i<=n; i++) {
scanf("%d",&a[i]);
if(a[i]==1)ans++;
}
if(ans==n) {
if(n&1)printf("1\n");
else printf("0\n");
} else {
if(abs(a[n]-a[1])<=1&&a[n]!=1&&a[1]!=1) printf("0\n");
else printf("1\n");
}
}
}