提交时间:2022-07-19 12:12:35

运行 ID: 52446

#include <bits/stdc++.h> using namespace std; inline string sub(string s,int st,int ed) { string w=""; for(int i=st; i<ed; i++) w+=s[i]; return w; } inline string rev(string s) { string w=""; for(int i=s.size()-1; ~i; i--) w+=s[i]; return w; } inline string fz(string s,int pos) { return rev(sub(s,0,pos))+rev(sub(s,pos,s.size())); } inline string cg(string s,int l) { return sub(s,l,s.size())+sub(s,0,l); } bool flag; int tt,a,b,dis; string s,t,s1,s2; int main() { cin>>tt; while(tt--) { cin>>s>>t>>a>>b; s1=fz(s,a),s2=fz(s,b),dis=max(a,b)-min(a,b); for(int i=0; i<s.size(); i++) { if(s1==t||s2==t||s==t) { puts("yes"); flag=1; break; } s1=cg(s1,dis),s2=cg(s2,dis),s=cg(s,dis); } if(!flag) puts("no"); flag=0; } return 0; }