提交时间:2022-07-19 12:31:26
运行 ID: 52520
#include <bits/stdc++.h> using namespace std; int t,l,r,n,cnt,len; string a,b; bool ok; int gcd(int q,int w) { return w==0?q:gcd(w,q%w); } string qp1(string q) { string ans=""; for(int i=l-1;i>=0;i--) ans+=q[i]; for(int i=len-1;i>=l;i--) ans+=q[i]; return ans; } int main() { ios::sync_with_stdio(false); cin.tie(0),cout.tie(0); cin>>t; while(t--) { cin>>a>>b>>l>>r; len=a.size(); n=gcd(len,r-l); if(a==b){cout<<"yes\n";continue;} ok=false; for(int i=0;i<len;i++) if(a[i]==b[0]) { ok=true; for(int o=1;o<len;o++) if(a[(i+o)%len]!=b[o]) {ok=false;break;} if(ok) if(i%n==0||(len-i)%n==0) {cout<<"yes"<<endl;break;} else {ok=false;break;} } if(ok) continue; a=qp1(a); ok=false; for(int i=0;i<len;i++) if(a[i]==b[0]) { ok=true; for(int o=1;o<len;o++) if(a[(i+o)%len]!=b[o]) {ok=false;break;} if(ok) if(i%n==0||(len-i)%n==0) {cout<<"yes"<<endl;break;} else {ok=false;break;} } if(!ok)cout<<"no"<<endl; } return 0; } /* thisisastr ihtrtsasis trthisisas */