Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
52258 | gzlinzy | 修复符文 | C++ | 运行出错 | 20 | 6 MS | 580 KB | 876 | 2022-07-19 11:51:17 |
#include<bits/stdc++.h> using namespace std; int t,a,b,len,k,d,n,flag,p=-1; string s,r,sb; int main(){ cin>>t; while(t--){ cin>>s>>r>>a>>b; p=-1; n=s.size(); k=abs(a-b); d=__gcd(k,n); for(int i=1;i<=n/d;i++){ for(int j=(i*k)%n,l=1;l<=n;l++){ if(s[(j+l-1)%n]!=r[l-1]){ flag=1; break; } } if(!flag){ cout<<"yes\n"; flag=-1; break; } flag=0; } if(flag){ flag=0; continue; } for(int i=a;i>=1;i--)sb[++p]=s[i-1]; for(int i=n;i>=a+1;i--)sb[++p]=s[i-1]; for(int i=0;i<=p;i++)s[i]=sb[i]; for(int i=1;i<=n/d;i++){ for(int j=(i*k)%n,l=1;l<=n;l++){ if(s[(j+l-1)%n]!=r[l-1]){ flag=1; break; } } if(!flag){ cout<<"yes\n"; flag=-1; break; } flag=0; } if(flag==0)cout<<"no\n"; flag=0; } }