普及t3(决斗king)

样例过了, WA20.
不知道是思路的问题还是代码的问题

#include<bits/stdc++.h>
using namespace std;

const int N = 1e6+10;
int aq[N], ay[N], vis[N];
int n;

int main()
{
	cin >> n;
	string s1, s2;
	cin >> s1;
	for(int i = 1; i <= n; i ++)
	{
		aq[i] = s1[i-1] - '0';
	}
	cin >> s2;
	for(int i = 1; i <= n; i ++)
		ay[i] = s2[i-1] - '0';
	sort(ay + 1, ay + n + 1);
	int res1 = 0;
	for(int i = 1; i <= n; i ++)
	{
		int l = 1, r = n, mid, res, index;
		bool flag = 1;
		while(l <= r)
		{
			mid = l + r >> 1;
			if(ay[mid] >= aq[i] && !vis[mid])
			{
				index = mid;
				r = mid - 1;
				flag = 0;	
			}
			else l = mid + 1;
		}
		res1 += flag;
		if(!flag) vis[index] = 1;
	}
	cout << res1 << endl;
	int res2 = 0;
	memset(vis, 0, sizeof(vis));
	for(int i = 1; i <= n; i ++)
	{
		int l = 1, r = n, mid, res, index;
		bool flag = 0;
		while(l <= r)
		{
			mid = l + r >> 1;
			if(ay[mid] > aq[i] && !vis[mid])
			{
				index = mid;
				r = mid - 1;
				flag = 1;
			}
			else l = mid + 1;
		}
		res2 += flag;
		if(flag) vis[index] = 1;
	}
	cout << res2;
	return 0;
}
1 个赞

题目?

1 个赞

我发错了,现在重新编辑了一下

1 个赞

1 个赞