Educational Codeforces Round 91 (Rated for Div. 2) A. Three Indices (模拟)

-
题意:有一长度为\(n\)的序列,问是否能找到\(a_{i}<a_{j},a_{j}>a_{k},(i<j<k)\),如果满足,输出其位置.
-
题解:直接暴力两头找即可,最坏复杂度:\(O(n^2)\).
-
代码:
int t; int n; int a[N]; int main() { ios::sync_with_stdio(false);cin.tie(0); cin>>t; while(t--){ cin>>n; for(int i=1;i<=n;++i) cin>>a[i]; bool ok=0; for(int j=1;j<=n;++j){ int pos1=-1; int pos2=-1; for(int i=1;i<j;++i){ if(a[i]<a[j]){ pos1=i; break; } } if(pos1==-1) continue; for(int k=j+1;k<=n;++k){ if(a[k]<a[j]){ pos2=k; break; } } if(pos1!=pos2 && pos1!=-1 && pos2!=-1){ ok=1; cout<<"YES"<<endl; cout<<pos1<<" "<<j<<" "<<pos2<<endl; break; } } if(!ok) cout<<"NO"<<endl; } return 0; }
𝓐𝓬𝓱𝓲𝓮𝓿𝓮𝓶𝓮𝓷𝓽 𝓹𝓻𝓸𝓿𝓲𝓭𝓮𝓼 𝓽𝓱𝓮 𝓸𝓷𝓵𝔂 𝓻𝓮𝓪𝓵
𝓹𝓵𝓮𝓪𝓼𝓾𝓻𝓮 𝓲𝓷 𝓵𝓲𝓯𝓮

浙公网安备 33010602011771号