题解
2025-07-11 22:01:17
发布于:江苏
1阅读
0回复
0点赞
#include <iostream>
#include <cstring>
using namespace std;
int gcd(int m,int n){
if (n==0) return m;
return gcd(n,m%n);
}
bool c(char p[],int l,int n){
for (int i=0;i<l-n;++i) if (p[i]!=p[i+n]) return 0;
return 1;
}
bool e(char p[],char q[],int n){
for (int i=0;i<n;++i) if (p[i]!=q[i]) return 0;
return 1;
}
void func(){
char s[23],s1[23];
cin>>s>>s1;
int a=strlen(s),b=strlen(s1),d=gcd(a,b);
for (int i=d;i>0;--i){
if (d%i==0 && c(s,a,i) && c(s1,b,i) && e(s,s1,i)){
for (int j=0;j<b/d;++j) cout<<s;
cout<<endl;
return;
}
}
cout<<-1<<endl;
}
int main(){
int t;
cin>>t;
for (int i=0;i<t;++i) func();
return 0;
}
这里空空如也
有帮助,赞一个