Codeforces 1451B - Non-Substring Subsequence
考察
lからrまでの文字列と同じ部分文字列で連続でないものがあればYESなければNOを出力します。
lがsの左端でなくlよりも左にS.at(l)と同じ文字があるかrがsの右端でなくrよりも右にS.at(r)と同じ文字があれば要件にあう文字列がありますのでYESを出力します。
そのまま実装します。
提出コード
#include <bits/stdc++.h> using namespace std; int main(){ int t; cin>>t; for(int i=0;i<t;i++){ int n; int q; cin>>n>>q; string s; cin>>s; for(int j=0;j<q;j++){ int l; int r; cin>>l>>r; l--; r--; int flag=0; if(l != 0){ for(int k=0;k<l;k++){ if(s.at(k) == s.at(l)){ flag=1; } } } if(r != n-1){ for(int k=r+1;k<n;k++){ if(s.at(k) == s.at(r)){ flag=1; } } } if(flag==1){ cout<<"YES"<<endl; } else{ cout<<"NO"<<endl; } } } return 0; }