求 A hack&A debug&C idea,各 1 关。
A code:
#include<bits/stdc++.h>
using namespace std;
int n,m,p[10],b[10],mx=-1;
char tmp;
string s,t;
int main()
{
cin>>n>>m>>s>>t;tmp=t[m-1];
memset(p,-1,sizeof(p));
for(int i=0;i<m;i++)p[t[i]-'0']=i;
for(int i=0;i<m;i++)b[t[i]-'0']++;
t="";
for(int i=9;i;i--)for(int j=1;j<=b[i];j++)t.push_back(i+'0');
for(int i=0,j=0;i<m;i++)
{
while(j<n&&s[j]>=t[i])j++;
if(j==n)break;mx=max(mx,p[t[i]-'0']);
s[j]=t[i];
}
if(mx!=m-1)s[n-1]=tmp;
cout<<s;
}