HDU-2094谁是冠军

谁是冠军题目

我的思路是把输入的名字 输掉的都把对应的 flag 改成 1 还有重的名字也改为1 方便最后的得出结论

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<math.h>
using namespace std;

char name[1000][20];
int flag[1000] = { 0 };
int main()
{
	int num;
	while (cin >> num)
	{
		memset(name, 0, sizeof(char)* 1000 * 20);
		memset(flag, 0, sizeof(int)*1000);
		if (num == 0)return 0;
		for (int i = 0; i < num * 2; i += 2)
		{
			cin >> name[i] >> name[i + 1];
			for (int j = 0; j < i; j++)
			{
				if (!strcmp(name[j], name[i]))flag[i] = 1;
			}
			if (flag[i + 1] == 0)flag[i + 1] = 1;
			for (int j = 0; j < i; j++)
			{
				if (!strcmp(name[j], name[i+1]))flag[j] = flag[i+1];
			}
		}
		int n = 0;
		for (int i = 0; i < num * 2; i++)
		{
			if (flag[i] == 0)n++;
		}
		//for (int i = 0; i<num * 2; i++)cout << flag[i] << " ";
		if (n == 0 || n>1)cout << "No" << endl;
		else cout << "Yes" << endl;
	}
	return 0;
}

一定要记得两个重置函数  我在这卡了好久。。。。。切记!!!!!!!!!!!

猜你喜欢

转载自blog.csdn.net/qq_40879809/article/details/81485216
今日推荐