原题传送门
啊。这是一道贪心题。两个问题分别是让M被S锤得最少的次数,让M锤S更多的次数。
1.在M中从小到大都尽量找刚好比S大的数
2.在S中从大到小都尽量找刚好比M小的数
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <string>
#include <cstring>
using namespace std;
int main()
{
int n;
string a,b;
while(~scanf("%d",&n)){
cin>>a>>b;//string类型不要用scanf读入
sort(a.begin(),a.end());
sort(b.begin(),b.end());
int p=0,ans1=0;
for(int i=0;i<n;i++){
if(a[p]<=b[i]){
p++;
}
else ans1++;//问题1
}
p=n-1;
int ans2=0;
for(int i=n-1;i>=0;i--){
if(a[i]<b[p]){
ans2++;//问题2
p--;
}
}
printf("%d\n%d\n",ans1,ans2);
}
return 0;
}