P1941猜谜游戏
描述
滨湖幼儿园的老师带着N位小朋友在玩游戏。
他们玩的是猜谜游戏,在每一轮游戏中,每一位小朋友都需要给出一个在1到100之间的整数(包括1和100)。对于每一位小朋友来说,如果他给出来的数字是唯一的,或者说没有别的小朋友给出来相同的数字,则他就可以获得与所选数字相同的得分。否则得零分。
现在他们一共进行了三轮游戏。老师希望知道三轮游戏之后,每一位小朋友分别可以得到多少分数。
格式
输入格式
输入有1+N行。
其中第一行给出一个正整数N(2<=N<=200)表示参与游戏的小朋友有多少位。
之后N行中的第i行(1<=i<=N)给出三个大于等于1小于等于100的正整数,分别表示第i位小朋友三轮游戏中分别给出的数字是多少。
输出格式
输出有N行。
其中第i行(1<=i<=N)给出了第i个小朋友在经过了三轮游戏之后,可以合计得到的分数。
限制
对于40%的数据,满足N<=50。
对于100%的数据,满足N<=200。
提示
对于样例一来说,假设五位小朋友分别名为Anold,Borel,Cayler,David和Einstein,则每一个人三轮游戏之后的得分情况如下所示:
Anold : 0+0+0 = 0
Borel : 0+0+92 = 92
Cayler : 63+89+63 = 215
David : 99+0+99 = 198
Einstein : 89+0+0 = 89
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int T; int map1[10000],map2[10000],map3[10000]; int find1 (int x) { int i,j=0; for(i=0;i<T;i++) { if(i==x) continue; else { if(map1[i]==map1[x]) { j=1; break; } } } if(j==1) { return 0; } else return map1[x]; } int find2 (int x) { int i,j=0; for(i=0;i<T;i++) { if(i==x) continue; else { if(map2[i]==map2[x]) { j=1; break; } } } if(j==1) { return 0; } else return map2[x]; } int find3 (int x) { int i,j=0; for(i=0;i<T;i++) { if(i==x) continue; else { if(map3[i]==map3[x]) { j=1; break; } } } if(j==1) { return 0; } else return map3[x]; } int main() { scanf("%d",&T); int i,j; for(i=0;i<T;i++) { scanf("%d%d%d",&map1[i],&map2[i],&map3[i]); } for(i=0;i<T;i++) { printf("%d\n",find1(i)+find2(i)+find3(i)); } }