POJ 3117 World Cup (简单数学题) --from lanshui_Yang

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
 
    题目大意很简单:一场足球赛中,若果双方 平手 的话,那么双方各得一分,否则,赢的一方得3分,输的一方不得分。 输入比赛的数量 t 和 各队的得分,求出结果为平局的比赛的数量。
    其实这是一道很简单的数学题,就是解二元一次方程组。先求出各队得分的 总和 sum ,设 不是 平局的数量为 X,    平局的数量 为 Y, 则可得方程组:
3X + 2Y = sum ; X + Y = t (t 为比赛的总数量)
解之得 : Y = 3t - sum 
    代码如下:
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <string>
#include <cmath>
using namespace std;
char s[15];
int main()
{
    int n,t;
    while (scanf("%d%d",&n,&t)!=EOF)
    {
        if(n == 0 && t == 0)
        break;
        int a; // a 为 每个队的得分
        int sum = 0;
        while ( n -- )
        {
            cin>>s>>a;
            sum += a;
        }
        printf("%d\n",3*t - sum);
    }
    return 0;
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值