思路与官方题解完全相同,但是 WA*7
#include<iostream>
#include<algorithm>
using namespace std;
int n,m;
string s,t;
string ans;
int a[1000005];
int main(){
cin>>n>>m>>s>>t;
s=" "+s;t=" "+t;
int x=t[m];
for(int i=1;i<=m;i++)a[i]=t[i];
sort(a+1,a+m+1);
int p=m;
int f=1,f2=1;
for(int i=1;i<=n;i++){
if(p==0)break;
if(a[p]==s[i])f=0;
if(s[i]<a[p]){
s[i]=a[p],p--,f2=0;
}
}
if(a[p+1]>x||p==m)s[n]=x;
if(!f&&f2&&s[n]<x)s[n]=x;
for(int i=1;i<=n;i++)cout<<s[i];
return 0;
}