题目描述
小可和达达正在打牌,他们俩每人都有n张牌,每张牌的大小是从0到9的。
每一轮他们俩每个人出一张牌,数字大的获胜。特殊的如果数字相同则为平局。
但是阴险狡诈的达达,已经知道了小可的出牌顺序为S。所以他可以调整自己的牌的顺序来应对小可的牌。
请问达达最少可以输多少次,最多可以赢多少次。
输入描述
第一行:输入一个正整数n,表示每个人的牌数。
第二行:输入一个长度为n的字符串,表示按照顺序排好的小可的牌。
第三行:输入达达的牌。
输出描述
达达最少可以输多少次,最多可以赢多少次。
输入样例
3
123
321
输出样例
0
2
数据描述
30%的数据:1≤n≤10
另有20%的数据:1≤n≤1000
100%的数据:1≤n≤10^5
AC代码
#include<bits/stdc++.h>
using namespace std;
char a[100008],b[100008];
int main(){
int n,ans1=0,ans2=0;
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
for(int i=0;i<n;i++) cin>>b[i];
sort(a,a+n);
sort(b,b+n);
int i=0,j=0;
while(i<n&&j<n){
if(b[j]>=a[i]) i++,j++;
else j++,ans1++;
}
i=j=0;
while(i<n&&j<n){
if(b[j]>a[i]) i++,j++,ans2++;
else j++;
}
cout<<ans1<<"\n"<<ans2<<"\n";
return 0;
}