Advertisement
momo2345

SKMP

Jun 18th, 2021
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.66 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define suni ios_base::sync_with_stdio(false);cin.tie(0); cout.tie(0)
  4. #define ll long long
  5. #define pb push_back
  6. #define tt int t;cin>>t;while(t--)
  7. #define endl "\n"
  8. int main()
  9. {
  10.     suni;
  11.     tt
  12.     {
  13.         string s,p;
  14.         cin>>s>>p;
  15.         int freqs[26], freqp[26];
  16.         memset(freqs,0,sizeof(freqs));
  17.         memset(freqp,0,sizeof(freqp));
  18.         for(int i=0;i<s.length();i++) freqs[s[i]-97]+=1;
  19.         for(int i=0;i<p.length();i++) freqp[p[i]-97]+=1;
  20.         for(int i=0;i<26;i++) freqs[i]=freqs[i]-freqp[i];
  21.         bool flag=0,flag1=0;
  22.         string str="";
  23.         for(int i=0;i<26;i++){
  24.             for(int j=0;j<freqs[i];j++){
  25.                 char ch=i+97;
  26.                 str+=ch;
  27.             }
  28.         }
  29.         //cout<<str<<endl;
  30.         string ans,ans1;
  31.         int j,k;
  32.         for(int i=0;i<str.length();i++){
  33.             if(p[0]==str[i] && flag==0){
  34.                 ans1+=str.substr(0,i)+p;
  35.                 flag=0;
  36.                 k=i;
  37.             }
  38.             else if(p[0]<str[i] && flag1==0){
  39.                 ans+=str.substr(0,i)+p;
  40.                 flag1=1;
  41.                 j=i;
  42.             }
  43.         }
  44.         string final;
  45.         if(flag1==1 && flag==1){
  46.             if(ans<ans1)
  47.               final= ans+str.substr(j,str.length()-j);
  48.             else
  49.               final=ans1+str.substr(k,str.length()-k);
  50.         }
  51.         else if(flag1==1)
  52.            final= ans+str.substr(j,str.length()-j);
  53.         else if(flag==1)
  54.             final=ans1+str.substr(k,str.length()-k);
  55.         else
  56.            final=str+p;
  57.            cout<<final<<endl;
  58.     }
  59.     return 0;
  60. }
  61.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement