基礎題,關鍵是理解題意,要求每一行的輸入爲每支隊伍比賽且僅比賽一次,輸出整個比賽安排是否合理。
#include <cstdio>
#include <cstring>
using namespace std;
const int MAXN = 2010;
bool vis[MAXN];
int num[MAXN];
int main()
{
int n;
while (scanf("%d", &n) != EOF)
{
memset(num, 0, sizeof(num));
int a, b;
bool flag = true;
for (int i = 1; i <= n - 1; i++)
{
memset(vis, 0, sizeof(vis));
for (int j = 1; j <= n / 2; j++)
{
scanf("%d-%d", &a, &b);
if (vis[a] == 0 && vis[b] == 0)
{
vis[a] = vis[b] = 1;
++num[a];
++num[b];
}
else
flag = false;
}
}
if (flag)
{
for (int i = 1; i <= n; i++)
{
if (num[i] != n - 1)
{
flag = false;
break;
}
}
}
if (flag)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}
繼續加油。