Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- #define suni ios_base::sync_with_stdio(false);cin.tie(0); cout.tie(0)
- #define ll long long
- #define pb push_back
- #define tt int t;cin>>t;while(t--)
- #define endl "\n"
- int main()
- {
- suni;
- tt
- {
- string s,p;
- cin>>s>>p;
- int freqs[26], freqp[26];
- memset(freqs,0,sizeof(freqs));
- memset(freqp,0,sizeof(freqp));
- for(int i=0;i<s.length();i++) freqs[s[i]-97]+=1;
- for(int i=0;i<p.length();i++) freqp[p[i]-97]+=1;
- for(int i=0;i<26;i++) freqs[i]=freqs[i]-freqp[i];
- bool flag=0,flag1=0;
- string str="";
- for(int i=0;i<26;i++){
- for(int j=0;j<freqs[i];j++){
- char ch=i+97;
- str+=ch;
- }
- }
- //cout<<str<<endl;
- string ans,ans1;
- int j,k;
- for(int i=0;i<str.length();i++){
- if(p[0]==str[i] && flag==0){
- ans1+=str.substr(0,i)+p;
- flag=0;
- k=i;
- }
- else if(p[0]<str[i] && flag1==0){
- ans+=str.substr(0,i)+p;
- flag1=1;
- j=i;
- }
- }
- string final;
- if(flag1==1 && flag==1){
- if(ans<ans1)
- final= ans+str.substr(j,str.length()-j);
- else
- final=ans1+str.substr(k,str.length()-k);
- }
- else if(flag1==1)
- final= ans+str.substr(j,str.length()-j);
- else if(flag==1)
- final=ans1+str.substr(k,str.length()-k);
- else
- final=str+p;
- cout<<final<<endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement