UVA10763

菜鸡退役人来水黄了……

\(\sf{Solution}\)

搞不懂为什么要排序,这不是两个数组直接模拟的数数题吗。

读入后,对于每个学生,令他要去的学校以及他现在所在学校人数对应加一,再 check 一下所有学校人数是否能配对,就完事了。最后, uva 多测不清两行泪啊。

\(\sf{Code}\)

#include<cstdio>
#include<cstring>
#include<string.h>
#include<algorithm>
using namespace std;
int go[5000005],back[5000005];
int n,a,b;
bool check()
{
	for(int i=1;i<=5000000;++i)
		if(go[i]!=back[i])//检查是否匹配
			return false;
	return true;
}
int main()
{
	while(scanf("%d",&n)&&n!=0)
	{
		memset(go,0,sizeof(go));
		memset(back,0,sizeof(back));//清空!!1
		for(int i=1;i<=n;++i)
			scanf("%d%d",&a,&b),go[a]++,back[b]++;//记录来去情况
		if(check())
			printf("YES\n");
		else printf("NO\n");
	}
	return 0;
}
posted @ 2021-08-11 15:15  Callous_Murder  阅读(57)  评论(1编辑  收藏  举报