题目描述
给定一个长度为 N 且只包含小写字母的字符串 S,和 M 个小写字母 c1,c2,⋯,cM。现在你要把 M 个小写字母全部插入到字符串 S 中,每个小写字母都可以插入到任意位置。
请问能得到的字典序最小的字符串是什么?
输入格式
第一行包含两个整数 N 和 M。
第二行包含一个长度为 N 的字符串 S。 第三行包含 M 个小写字母 c1,c2,⋯,cM。
输出格式
输出一个长度为 N+M 的字符串代表答案。
输入输出样例
输入 #1复制
4 3 abbc cba
输出 #1复制
aabbbcc
输入 #2复制
7 3 lanqiao bei
输出 #2复制
beilanqiao
说明/提示
【评测用例规模与约定】
对于 20% 的评测用例,M=1。
对于 100% 的评测用例,1≤N,M≤105
#include<bits/stdc++.h>
using namespace std;
int n,m;
const int N=1e5+10;
string a,b;
int main ()
{
cin>>n>>m;
cin>>a;
cin>>b;
int i=0;
int j=0;
sort(b.begin(),b.end());
while(i<=n||j<=m)
{
if(i==n&&j==m)
{
break;
}
else if(i==n)
{
cout<<b[j++];
}
else if(j==m)
{
cout<<a[i++];
}
else if(a[i]<=b[j])
{
cout<<a[i++];
}
else
{
cout<<b[j++];
}
}
return 0;
}