用p[a]保存的是输入的a在第p[a]个,
然后根据差值查找。

#include<stdio.h> #include<string.h> int main() { int mm,m,t,n,i,j,flag,a,p[10010]; scanf("%d",&t); while(t--) { flag=0; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&a); p[a]=i; } m=n/2; for(j=1;j<m;j++) { mm=n-j-j; for(i=1;i<=mm;i++) { if(p[i]<p[i+j]&&p[i+j]<p[i+j+j]) { flag=1;break; } if(p[i]>p[i+j]&&p[i+j]>p[i+j+j]) { flag=1;break; } } if(flag==1)break; } if(flag==1)printf("Y "); else printf("N "); } return 0; }