D阿巴阿巴
#include<bits/stdc++.h>
using namespace std;
char str[1002];
int main(){
int t;
cin>>t;
while(t--){
int n;
cin>>n>>str;
int ans=-1;S
for(int i=0;i<n-7;++i){
int k=0;
for(int j=0;j<8;++j){
if(str[i+j]=='a'){
k++;
}
}
if(k==4){
ans=i;
break;
}
}
if(ans>=0){
cout<<ans+1<<" "<<ans+8<<endl;
}
else{
cout<<"impossible"<<endl;
}
}
return 0;
}
E俺拜俺拜
#include<bits/stdc++.h>
using namespace std;
char str[10002];
map<int,int> mp;
int n,t,x;
int main(){
cin>>t;
while(t--){
cin>>n>>x;
cin>>(str+1);
int flag=0;
int pre=0;
mp.clear();
for(int i=1;i<=n;++i){
if(str[i]=='a'){
pre++;
}
else{
pre--;
}
if(pre==0&&i>=x){
cout<<1<<" "<<i<<endl;
flag=1;
break;
}
if(mp[pre]==0){
mp[pre]=i;
}
else if(i-mp[pre]>=x){
cout<<mp[pre]+1<<" "<<i<<endl;
flag=1;
break;
}
}
if(!flag) cout<<"impossible"<<endl;
}
return 0;
}
G 瓜瓜的特别任务
#include<bits/stdc++.h>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
string s;
cin>>s;
int n=s.size();
int ans=1;
for(int l=1;l<=n;++l){
if(n/l<=ans) break;
for(int i=0;i<n;++i){
int j=i+l;
if(j>=n) break;
string tmp=s.substr(i,l);
int k=1;
int pos=i;
while(pos+l<n&&tmp==s.substr(pos+l,l)){
pos+=l;
k++;
}
ans=max(ans,k);
}
}
cout<<ans<<endl;
}
}