Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <vector>
- using namespace std;
- vector<int> pf(string s){
- int i,j,n=s.size(); vector<int> p(n);
- p[0]=0;
- for(i=0;i<n;i++)if(s[i]<='Z')s[i]+=32;
- for(i=1;i<n;i++){
- j=p[i-1];
- while(j>0&&s[i]!=s[j])j=p[j-1];
- if(s[i]==s[j])j++;
- p[i]=j;}
- return p;}
- int main(){
- string a,b,c,d,s; int i,j,k,n;
- cin>>a>>b;
- s=a+"#"+b; n=s.size(); vector<int> p(n);
- p=pf(s); i=p[n-1];
- p=pf(b+"#"+a); j=p[n-1];
- if(i>j)cout<<b.erase(b.size()-i,i)+a;
- else if(j>i)cout<<a.erase(a.size()-j,j)+b;
- else{
- c=b.erase(b.size()-i,i)+a;
- d=a.erase(a.size()-j,j)+b;
- if(c<d)cout<<c; else cout<<d;}
- return 0;}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement