暴力,有技巧,确定a[i2]的值,先从0~i2找a[i1]的值来计算a[i3]的值,当i2>n/2时,从i2~n-1找a[i3]的值来计算a[i1]的值
#include<stdio.h> int hash[10010],a[10010]; int main() { int i,j,n,t,k,flag; scanf("%d",&t); while(t--) { flag=0; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&a[i]); hash[a[i]]=i; } for(i=1;i<n/2;i++) { for(j=0;j<i;j++) { k=2*a[i]-a[j]; if(k<=0||k>n)continue; if(hash[k]>i) {flag=1;break;} } if(flag==1)break; } for(i;i<n-1;i++) { for(j=i+1;j<n;j++) { k=2*a[i]-a[j]; if(k<=0||k>n)continue; if(hash[k]<i) {flag=1;break;} } if(flag==1)break; } if(flag==1) puts("Y"); else puts("N"); } return 0; }