这个题类似田忌赛马
题目要求的是第二个人输的最小次数和第一个人输的最多次数。
求第二个人输的最小次数,正面不好求,可以通过反 面来求,即求第二个人打赢和打平第一个人的最大次数,用总比赛次数减去即可。然后求第一个人输的最多次数,就是相当于求第二个人赢的最多次数。
代码:\n
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <map>
#include <set>
#include <cstring>
#include <sstream>
#include <math.h>
#define inf 0x3f3f3f3f
using namespace std;
typedef long long ll;
char s1[1004],s2[1004];
int a[1004],b[1004];
int main(){
int n;
cin>>n;
scanf("%s",s1);
scanf("%s",s2);
for(int i=0;i<n;i++){
a[i]=s1[i]-'0';
b[i]=s2[i]-'0';
}
sort(a,a+n);
sort(b,b+n);
int ans=0;
for(int i=0,j=0;i<n&&j<n;){
while(j<n){
if(a[i]<=b[j]){
i++;
j++;
ans++;
break;
}else
j++;
}
}
cout<<n-ans<<endl;
ans=0;
for(int i=0,j=0;i<n&&j<n;){
while(j<n){
if(a[i]<b[j]){
i++;
j++;
ans++;
break;
}else
j++;
}
}
cout<<ans<<endl;
return 0;
}