[ICPC2016上海L] World Cup - 暴力
Description
有四支队伍参加比赛,两两对抗,总共要打6场比赛,给你四支队伍的最终得分,让你判断能否产生此种分数。如果能,是否唯一。赢一场,得3分,平一场,双方各得一分,败一场,得0分。
Solution
暴力枚举每种胜负情况即可
#include <bits/stdc++.h>
using namespace std;
int caseid = 0;
int ta, tb, tc, td;
bool check(int ab, int ac, int ad, int bc, int bd, int cd)
{
int a = 0, b = 0, c = 0, d = 0;
if (ab == 0)
a++, b++;
if (ab == 1)
a += 3;
if (ab == 2)
b += 3;
if (ac == 0)
a++, c++;
if (ac == 1)
a += 3;
if (ac == 2)
c += 3;
if (ad == 0)
a++, d++;
if (ad == 1)
a += 3;
if (ad == 2)
d += 3;
if (bc == 0)
b++, c++;
if (bc == 1)
b += 3;
if (bc == 2)
c += 3;
if (bd == 0)
b++, d++;
if (bd == 1)
b += 3;
if (bd == 2)
d += 3;
if (cd == 0)
c++, d++;
if (cd == 1)
c += 3;
if (cd == 2)
d += 3;
if (a == ta && b == tb && c == tc && d == td)
return true;
return false;
}
signed main()
{
ios::sync_with_stdio(false);
int t;
cin >> t;
while (t--)
{
cin >> ta >> tb >> tc >> td;
int cnt = 0;
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
for (int k = 0; k < 3; k++)
for (int l = 0; l < 3; l++)
for (int m = 0; m < 3; m++)
for (int n = 0; n < 3; n++)
cnt += check(i, j, k, l, m, n);
++caseid;
cout << "Case #" << caseid << ": ";
if (cnt == 0)
cout << "Wrong Scoreboard" << endl;
else if (cnt == 1)
cout << "Yes" << endl;
else if (cnt > 1)
cout << "No" << endl;
}
}