C++ 校园足球联赛 题解

题目描述

现有一共20支队伍参加厦门地区的校园足球联赛,经过38轮比赛后(即每支队伍与其余19支队伍各进行主客场两场比赛)按每支队伍的最终积分情况决定排名先后。积分排名规则如下:

1)每场比赛胜者积3分,负者不得分,平局则双方各积1分。

2)总积分相等的两只队伍,则净胜球数多者排名靠前(净胜球数=总进球数 - 总失球数);

3)假设不会出现总积分和净胜球数均相同的两支球队。

38轮比赛结束后,依次录入20支队伍(编号从1~20)的比赛数据情况(胜、平、负局数,总进球数和总失球数)。输入某两支球队的编号,输出排名更靠前的球队编号及其比赛数据(胜、平、负局数,总进球数和总失球数)。

输入格式

20行数列对应1~20号队伍的比赛数据,每行五个数据(胜、平、负局数,总进球数和总失球数),空格隔开。

第21行两个待比较队伍的编号,空格隔开。

输出格式

排名更靠前的球队编号及其比赛数据(胜、平、负局数,总进球数和总失球数),一行六个数使用空格隔开。

输入输出样例

输入 #1

26 9 3 70 25
25 7 6 86 38
18 16 4 51 27
19 13 6 54 34
18 6 14 63 49
......(此处省略13行)
9 6 23 40 65
5 10 23 27 58
3 4

输出 #1

3 18 16 4 51 27

说明/提示

样例解释:比较第三和第四行两支队伍,计算可得两支队伍的总积分均为70分,再比较净胜球数分别为24和20。因此第三行的队伍排名更靠前,输出编号3及其比赛数据.

对100%的数据,所有比赛数据都是int范围内的整数(不会出现逆天的进球数)

代码如下:

#include<bits/stdc++.h>
using namespace std;
int a[21][6];
int main()
{	
	int x,y,d=0,b=0,z1=0,z2=0,l=0;
	for(int i=1;i<=20;i++){
		for(int j=1;j<=5;j++){
			cin>>a[i][j];
		}
	}
	cin>>x>>y;
	d=a[x][1]*3;
	d=d+a[x][2]*1;
	l=a[x][3];
	b=a[y][1]*3;
	b=b+a[y][2]*1;
	l=a[y][3];
	if(d>b){
		cout<<x<<" "<<a[x][1]<<" "<<a[x][2]<<" "<<a[x][3]<<" "<<a[x][4]<<" "<<a[x][5];
	}else if(b>d){
		cout<<y<<" "<<a[y][1]<<" "<<a[y][2]<<" "<<a[y][3]<<" "<<a[y][4]<<" "<<a[y][5];
	}else if(b=d){
		z1=a[x][4]-a[x][5];
		z2=a[y][4]-a[y][5];
		if(z1>z2){
			cout<<x<<" "<<a[x][1]<<" "<<a[x][2]<<" "<<a[x][3]<<" "<<a[x][4]<<" "<<a[x][5];
		}else{
			cout<<y<<" "<<a[y][1]<<" "<<a[y][2]<<" "<<a[y][3]<<" "<<a[y][4]<<" "<<a[y][5];
		}
	}	
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KJM666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值