Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
52388 | AK2022071369 | 修复符文 | C++ | 解答错误 | 40 | 12 MS | 528 KB | 1625 | 2022-07-19 12:04:53 |
#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; }