what is wrong with my solution it passes all the tc and i have check edge cases tooo –
question –
Smallest KMP - Problems | CodeChef
ll t,n;
string s,p; cin>>t; while(t--){ cin>>s>>p; n = s.size(); string res = ""; map<char,ll>freq; map<char,int>m; for(int i=0; i<n; i++) freq[s[i]]++; for(int i=0; i<n; i++) m[p[i]]++; for(auto it:freq){ if(it.first<p[0]){ if(m.find(it.first)!=m.end()){ int cnt = m[it.first]; for(int i=1; i<=it.second-cnt; i++) res+=it.first; } else{ for(int i=1;i<=it.second;i++) res+=it.first; } } else if(it.first==p[0]){ int cnt = 0; if(freq.find(p[0])!=freq.end()){ } cnt = m[p[0]]; for(int i=1; i<=it.second-cnt; i++) res+=it.first; res+=p; } else if(it.first>p[0]){ if(m.find(it.first)!=m.end()){ int cnt = m[it.first]; for(int i=1; i<=it.second-cnt; i++) res+=it.first; } else { for(int i=1; i<=it.second; i++) res+=it.first; } } } cout<<res<<endl; }