HDU 3833 YY's new problem(换种思路的模拟,防超时)
用p[a]保存的是输入的a在第p[a]个,
然后根据差值查找。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#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\n"); else printf("N\n"); } return 0; }
一道又一道,好高兴!