提交时间:2022-07-19 11:52:37

运行 ID: 52317

#include <bits/stdc++.h> using namespace std; string give,query,tmp1,tmp2; int main() { int T,l1,l2; scanf("%d",&T); while(T--) { cin>>give>>query; int n=give.size(); scanf("%d%d",&l1,&l2); tmp1=give.substr(l2-l1,n-l2+l1)+give.substr(0,l2-l1); if(tmp1==query) { printf("yes\n"); continue; } tmp2=give.substr(n-l2+l1,l2-l1)+give.substr(0,n-l2+l1); if(tmp2==query) { printf("yes\n"); continue; } bool flag=false; while(tmp1!=give&&tmp2!=give) { if(tmp1==query||tmp2==query) { flag=true; break; } if(tmp1!=give) { tmp1=tmp1.substr(l2-l1,n-l2+l1)+tmp1.substr(0,l2-l1); if(tmp1==query) { flag=true; break; } } if(tmp2!=give) { tmp2=tmp2.substr(n-l2+l1,l2-l1)+tmp2.substr(0,n-l2+l1); if(tmp1==query) { flag=true; break; } } } if(flag) printf("yes\n"); else printf("no\n"); } return 0; }