#include #include using namespace std; const int maxn=5005; int a[maxn],l[maxn][maxn],r[maxn][maxn]; // l[i][j]±íʾϱêСÓÚjÇÒÖµ±ÈNi´óµÄÊýÖÐ×îСֵµÄλÖà // r[i][j]±íʾϱê´óÓÚjÇÒÖµ±ÈNiСµÄÊýÖÐ×î´óÖµµÄλÖà int k; bool solve() { for(int i=1;i<=k;i++) { l[i][0]=0; for(int j=1;j=a[j]) l[i][j]=l[i][j-1]; else if(!l[i][j-1]||a[j]i;j--) {// ö¾ÙNr,ÕÒNs if(a[i]<=a[j]) r[i][j]=r[i][j+1]; else if(!r[i][j+1]||a[j]>a[r[i][j+1]]) r[i][j]=j; else r[i][j]=r[i][j+1]; } } //ö¾Ùr£¬q£¬ÕÒp£¬s¾Í±ä³ÉÁ˳£Êýʱ¼ä¡£¸´ÔÓ¶ÈÓÉn^4±ä³ÉÁËn^2. for(int i=1;i<=k;i++) { for(int j=i+1;j<=k;j++) { if(!l[j][i-1]||!r[i][j+1]||a[i]<=a[j]) continue; int p=l[j][i-1],s=r[i][j+1]; if(a[j]>T; while(T--) { cin>>k; for(int i=1;i<=k;i++) cin>>a[i]; if(solve()) cout<<"YES\n"; else { reverse(a+1,a+k+1); if(solve()) cout<<"YES\n"; else cout<<"NO\n"; } } return 0; }