C/C++ 算法分析与设计:枚举(谁获冠军?)

题目描述

ABCDE五个人在运动会上分获百米(1)、二百米(2)、跳高(3)、跳远(4)和铅球冠军(5)中的一项,有四个人猜测比赛结果: 甲说:B获铅球冠军,D获跳高冠军。 乙说:A获百米冠军,E获跳远冠军。 丙说:C获跳远冠军,D获二百米冠军。 丁说:B获跳高冠军,E获铅球冠军。 其中每个人说了2句,现知道每个人说对了几句。问5人各获得哪项冠军?

输入

多组测试数据,每组测试数据包含5行 第1行4个数字,分别表示4个人说对的句数(0,1或2) 然后4行分别是各人的2个猜测,每行4个数字,先是运动员 然后是项目,A为1,B为2,C为3,D为4,E为5

输出

在一行分别输出5人拿冠军的项目,如果不能确定则输出"Sorry"

样例输入

1 1 1 1

2 5 4 3

1 1 5 4

3 4 4 2

2 3 5 5

1 0 1 2

2 5 4 3

1 1 5 4

3 4 4 2

2 3 5 5

样例输出

1 2 4 3 5

Sorry

#include

using namespace std;

int main()

{

int A,B,C,D,E;

int a[4],f=0,i,j,b[4][4];

while(cin>>a[0]>>a[1]>>a[2]>>a[3])

{

for(i=0;i<4;i++)

for(j=0;j<4;j++)

cin>>b[i][j];

f=0;

for(A=1;A<=5;A++)

for(B=1;B<=5;B++)

for(C=1;C<=5;C++)

for(D=1;D<=5;D++)

for(E=1;E<=5;E++)

{

if( (A!=B

北京体育大学在首都高等学校第43届游泳锦标赛中夺得16金6银2铜
决赛打法国?这离谱的剧本!恩比德迎来最大嘘声,该证明自己了