World Cup
Description A World Cup of association football is being held with teams from around the world. The standing is based on the number of points won by the teams, and the distribution of points is done the usual way. That is, when a teams wins a match, it receives 3 points; if the match ends in a draw, both teams receive 1 point; and the loser doesn’t receive any points. Given the current standing of the teams and the number of teams participating in the World Cup, your task is to determine how many matches ended in a draw till the moment. Input The input contains several test cases. The first line of a test case contains two integers T and N, indicating respectively the number of participating teams (0 ≤ T ≤ 200) and the number of played matches (0 ≤ N ≤ 10000). Each one of the T lines below contains the name of the team (a string of at most 10 letter and digits), followed by a whitespace, then the number of points that the team obtained till the moment. The end of input is indicated by T = 0. Output For each one of the test cases, your program should print a single line containing an integer, representing the quantity of matches that ended in a draw till the moment. Sample Input 3 3 Brasil 3 Australia 3 Croacia 3 3 3 Brasil 5 Japao 1 Australia 1 0 0 Sample Output 0 2 Source
South America 2006, Brazil Subregion
|
题意:
根据比赛队伍数量 t 和 比赛次数 b 然后根据输入的t个队伍的得分求出打平的比赛次数。
赢得比赛得3分,比赛打平得1分,输的队伍不得分。
解:
假设每次比赛都赢的话,总分应该是3*n,实际总分为sum,那么造成分数差异的原因是打平的比赛,所以打平的比赛场数为:3*n-sum
#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std;
int main()
{
int n,t;
while(~scanf("%d %d",&n,&t),n)
{
int sum,answer;
sum=0;
for(int i=0;i<n;i++)
{
int x;
string temp;
cin>>temp>>x;
sum+=x;
}
answer=3*t-sum;
printf("%d\n",answer);
}
return 0;
}