提交时间:2022-07-19 12:56:55

运行 ID: 52545

#include <bits/stdc++.h> using namespace std; int t,l[2]; char s[500005],u[500005]; char s1[500005]; int main() { scanf("%d",&t); while(t--) { int i; bool m,x=true; cin>>s>>u; scanf("%d %d",&l[1],&l[2]); int n=strlen(s); for(int i=1; i<=2; i++) { for(int j=0; j<=l[i]-1; j++) s1[j]=s[l[i]-1-j]; for(int j=l[i]; j<n; j++) s1[j]=s[n-j+l[i]-1]; x=true; for(int j=0; j<n; j++) { if(s1[j]==u[j]) x=true; else { x=false; break; } } if(x) break; } if(x) { cout<<"yes"<<endl; continue; } for(i=0; i<n; i++) { if(s[0]==u[i]) { m=true; for(int j=i+1; j<i+n; j++) { if(s[j-i]==u[j%n]) m=true; else { m=false; break; } } if(m) break; else continue; } } if(m) cout<<"yes"<<endl; else cout<<"no"<<endl; } return 0; }