提交时间:2022-07-19 12:04:53

运行 ID: 52388

#include <bits/stdc++.h> using namespace std; char a[114514],b[114514],d[114514],c[114514],e[114514],len; int t,x,y,p[114514]; bool work() { for(int i=1; i<=len; i++) { if(a[i]!=b[i]) { break; } if(i==len) { return 1; } } for(int i=1; i<=len; i++) { if(a[i]!=c[i]) { break; } if(i==len) { return 1; } } for(int i=1; i<=len; i++) { if(a[i]!=d[i]) { break; } if(i==len) { return 1; } } return 0; } int gcd(int n,int m) { if(n==0) return m; else return gcd(m%n,n); } int main() { scanf("%d",&t); while(t--) { cin>>a+1; cin>>b+1; len=strlen(a+1); scanf("%d%d",&x,&y); for(int i=1; i<=x; i++) { c[i]=b[x+1-i]; } for(int i=x+1; i<=len; i++) { c[i]=b[len+1-i+x]; } for(int i=1; i<=y; i++) { d[i]=b[y+1-i]; } for(int i=y+1; i<=len; i++) { d[i]=b[len+1-i+y]; } int dd=abs(x-y); int d=gcd(dd,len),flag=0; // printf("cbs666\n"); for(int i=1; i<=len/d; i++) { for(int i=1; i<=d; i++) { e[len-d+i]=a[i]; } for(int i=1; i<=len-d; i++) { e[i]=a[d+i]; } for(int i=1; i<=len; i++) { a[i]=e[i]; } if(work()==1) { flag=1; break; } } if(flag==0) { printf("no\n"); } else { printf("yes\n"); } } return 0; }