LEAGUE TABLES【模拟】

LEAGUE TABLES
时间限制: 1 Sec 内存限制: 128 MB
提交: 349 解决: 150
[提交] [状态] [命题人:admin]
题目描述
League football (known in some circles as soccer) has been played in England since 1888 and is the most popular winter game through most of Europe, just as rugby is in New Zealand. English newspapers and many Websites publish the latest results and the current tables.
With English football, each team plays every other team both home and away, and at the end of the season, the team with most points wins the title. Points are awarded for winning (3 points) or drawing (1 point each). Teams level on points are separated by the larger goal difference, that is goals for (ie scored) minus goals against (ie conceded). If this is level, the team who has scored more goals is placed first.
In this problem you will be given a list of teams and their current record, followed by a list of matches. You have to update the record of each team who has a result recorded and output a correctly sorted league table.

输入
The first line contains a single integer, T (8 <= T <= 30), which is the number of teams in the league. The next 2 x T lines each contain the current record of one team as follows:


The first line contains the team name which consists of one or more words, which may contain numbers. No name will be longer than 30 characters.
All numbers on the second line are non-negative integers.
The next line contains a single integer, G (0 < G <= (T/2)), which is the number of games recorded. There then follow 4 x G lines, each containing data on one game as follows:




The two teams will both be from the preceding list of teams. The scores will each be a non-negative integer less than 20.

输出
T lines giving the updated record of each team from the input, name followed by data all on 1 line. Teams are to be sorted by highest points, then highest goal difference, then most goals scored, then alphabetical order (case insensitive, numbers before letters).

样例输入
复制样例数据
18
Aston Villa
33 21 6 6 74 34 69
Sheffield United
34 18 12 4 63 33 66
Sunderland
33 18 3 12 47 34 57
Wolverhampton Wanderers
33 15 9 9 47 35 54
Derby County
33 13 8 12 43 42 47
Newcastle United
34 13 10 11 53 43 49
Manchester City
33 13 8 12 49 41 47
Nottingham Forest
34 13 8 13 56 55 47
Stoke City
34 13 8 13 37 45 47
Everton
33 13 7 13 46 30 46
Bury
33 13 6 14 40 57 45
Liverpool
33 13 5 15 47 45 44
Blackburn Rovers
33 12 4 17 47 60 40
West Bromwich Albion
34 11 8 15 43 51 41
Preston North End
33 12 4 17 37 45 40
Notts County
34 9 11 14 46 60 38
Burnley
34 11 5 18 34 54 38
Glossop
34 4 10 20 30 75 22
5
Aston Villa
3
Preston North End
1
Blackburn Rovers
2
Wolverhampton Wanderers
1
Derby County
2
Everton
1
Liverpool
2
Bury
0
Sunderland
3
Manchester City
1
样例输出
Aston Villa 34 22 6 6 77 35 72
Sheffield United 34 18 12 4 63 33 66
Sunderland 34 19 3 12 50 35 60
Wolverhampton Wanderers 34 15 9 10 48 37 54
Derby County 34 14 8 12 45 43 50
Newcastle United 34 13 10 11 53 43 49
Manchester City 34 13 8 13 50 44 47
Liverpool 34 14 5 15 49 45 47
Nottingham Forest 34 13 8 13 56 55 47
Stoke City 34 13 8 13 37 45 47
Everton 34 13 7 14 47 32 46
Bury 34 13 6 15 40 59 45
Blackburn Rovers 34 13 4 17 49 61 43
West Bromwich Albion 34 11 8 15 43 51 41
Preston North End 34 12 4 18 38 48 40
Notts County 34 9 11 14 46 60 38
Burnley 34 11 5 18 34 54 38
Glossop 34 4 10 20 30 75 22

题目大意:
先输入一个整数nnn,代表有nnn支队伍,下面2n2n2n行,每两行代表一支队伍当前的信息,先输入队伍的名称,由字母、数字、空格组成,然后第二行依次输入当前的比赛场数、胜场数、平局数、败场数、进球数、失球数、得分。然后输入一个数字ttt,代表还需进行ttt场比赛,下面4t4t4t行代表比赛的信息,每场比赛先输入主场方的队伍名称,再输入该场比赛的进球数,然后输入客场队伍的名称,其队伍的进球数。最后输出ttt场比赛打完后各个队伍的所有信息,先按得分排序,得分高得优先,得分相同者,净球数(进球数-失球数)大者优先,净球数相同者,进球数多者优先,进球数相同者,队伍名字典序小者优先。

解题思路:
此题只需模拟一下即可,需注意的是,在比较队伍名字典序时,需将队伍名中的字母提取出来,不区分大小下来进行比较。

代码:

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstdlib>
#include <cstring>
#include <map>
#include <stack>
#include <queue>
#include <vector>
#include <bitset>
#include <set>
#include <utility>
#include <sstream>
#include <iomanip>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define inf 0x3f3f3f3f
#define rep(i,l,r) for(int i=l;i<=r;i++)
#define lep(i,l,r) for(int i=l;i>=r;i--)
#define ms(arr) memset(arr,0,sizeof(arr))
//priority_queue<int,vector<int> ,greater<int> >q;
const int maxn = (int)1e5 + 5;
const ll mod = 1e9+7;
struct node
{string name;string str;int num;int win;int draw;int lose;int jin;int shi;int point;int cha;
}arr[120];
map<string,int> m;
bool cmp(node a,node b) {if(a.point==b.point) {if(a.cha==b.cha) {if(a.jin==b.jin) {return a.str<b.str;}else return a.jin>b.jin;}else return a.cha>b.cha;}else return a.point>b.point;
}
int main() 
{#ifndef ONLINE_JUDGEfreopen("in.txt", "r", stdin);#endif//freopen("out.txt", "w", stdout);//ios::sync_with_stdio(0),cin.tie(0);int n;cin>>n;rep(i,1,n) {while(getchar()!='\n');getline(cin,arr[i].name);m[arr[i].name]=i;arr[i].str="";for(int j=0;j<arr[i].name.size();j++) {if(arr[i].name[j]>='a'&&arr[i].name[j]<='z')arr[i].str+=arr[i].name[j];if(arr[i].name[j]>='A'&&arr[i].name[j]<='Z') arr[i].str+=(arr[i].name[j]+32);}cin>>arr[i].num>>arr[i].win>>arr[i].draw>>arr[i].lose>>arr[i].jin>>arr[i].shi>>arr[i].point;arr[i].cha=arr[i].jin-arr[i].shi;}int t;cin>>t;string s1,s2;int a,b;rep(i,1,t) {while(getchar()!='\n');getline(cin,s1);cin>>a;while(getchar()!='\n');getline(cin,s2);cin>>b;arr[m[s1]].num++;arr[m[s2]].num++;if(a==b) {arr[m[s1]].draw++;arr[m[s2]].draw++;arr[m[s1]].jin+=a;arr[m[s1]].shi+=b;arr[m[s2]].jin+=b;arr[m[s2]].shi+=a;arr[m[s1]].point++;arr[m[s2]].point++;arr[m[s1]].cha=arr[m[s1]].jin-arr[m[s1]].shi;arr[m[s2]].cha=arr[m[s2]].jin-arr[m[s2]].shi;}else if(a>b) {arr[m[s1]].win++;arr[m[s2]].lose++;arr[m[s1]].jin+=a;arr[m[s1]].shi+=b;arr[m[s2]].jin+=b;arr[m[s2]].shi+=a;arr[m[s1]].point+=3;arr[m[s1]].cha=arr[m[s1]].jin-arr[m[s1]].shi;arr[m[s2]].cha=arr[m[s2]].jin-arr[m[s2]].shi;}else {arr[m[s1]].lose++;arr[m[s2]].win++;arr[m[s1]].jin+=a;arr[m[s1]].shi+=b;arr[m[s2]].jin+=b;arr[m[s2]].shi+=a;arr[m[s2]].point+=3;arr[m[s1]].cha=arr[m[s1]].jin-arr[m[s1]].shi;arr[m[s2]].cha=arr[m[s2]].jin-arr[m[s2]].shi;}}sort(arr+1,arr+1+n,cmp);rep(i,1,n) {cout<<arr[i].name<<" "<<arr[i].num<<" "<<arr[i].win<<" "<<arr[i].draw<<" "<<arr[i].lose<<" "<<arr[i].jin<<" "<<arr[i].shi<<" "<<arr[i].point<<endl;}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/536266.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MUSICAL CHAIRS【模拟】

MUSICAL CHAIRS 时间限制: 1 Sec 内存限制: 128 MB 提交: 386 解决: 76 [提交] [状态] [命题人:admin] 题目描述 Musical chairs is a game frequently played at children’s parties. Players are seated in a circle facing outwards. When the music starts, the players h…

Bomb HDU - 3555【数位dp】

Bomb HDU - 3555 The counter-terrorists found a time bomb in the dust. But this time the terrorists improve on the time bomb. The number sequence of the time bomb counts from 1 to N. If the current number sequence includes the sub-sequence “49”, the power…

不要62 HDU - 2089【数位dp】

不要62 HDU - 2089 杭州人称那些傻乎乎粘嗒嗒的人为62&#xff08;音&#xff1a;laoer&#xff09;。 杭州交通管理局经常会扩充一些的士车牌照&#xff0c;新近出来一个好消息&#xff0c;以后上牌照&#xff0c;不再含有不吉利的数字了&#xff0c;这样一来&#xff0c;就可…

PACKING【二维01背包】

PACKING 时间限制: 1 Sec 内存限制: 128 MB 提交: 278 解决: 24 [提交] [状态] [命题人:admin] 题目描述 It was bound to happen. Modernisation has reached the North Pole. Faced with escalating costs for feeding Santa Claus and the reindeer, and serious difficulti…

机器人军团【动态规划】

机器人军团 时间限制: 1 Sec 内存限制: 64 MB 提交: 279 解决: 139 [提交] [状态] [命题人:admin] 题目描述 邪狼&#xff1a;“怎么感觉这些机器人比我还聪明&#xff1f;不是说人工智能永远不能超越人类吗&#xff1f;” 天顶星人&#xff1a;“你们真是目光短浅&#xff0c…

【动态规划】抄近路

【动态规划】抄近路 时间限制: 1 Sec 内存限制: 64 MB 提交: 105 解决: 68 [提交] [状态] [命题人:admin] 题目描述 “最近不知道怎么回事&#xff0c;感觉我们这个城市变成了一个神奇的地方&#xff0c;有时在路上走着走着人就消失了&#xff01;走着走着突然又有人出现了&…

【动态规划】魔法石矿

【动态规划】魔法石矿 时间限制: 1 Sec 内存限制: 64 MB 提交: 116 解决: 27 [提交] [状态] [命题人:admin] 题目描述 为了找到回家的路&#xff0c;张琪曼施展魔法&#xff0c;从高维空间召唤出了一种叫作“读者”的生物&#xff0c;据说“读者”这种生物无所不能&#xff0c;…

Knapsack Cryptosystem【折半+查找】

链接&#xff1a;https://ac.nowcoder.com/acm/contest/889/D 来源&#xff1a;牛客网 Amy asks Mr. B problem D. Please help Mr. B to solve the following problem. Amy wants to crack Merkle–Hellman knapsack cryptosystem. Please help it. Given an array {ai} wi…

All men are brothers【并查集+数学】

链接&#xff1a;https://ac.nowcoder.com/acm/contest/889/E 来源&#xff1a;牛客网 题目描述 Amy asks Mr. B problem E. Please help Mr. B to solve the following problem. There are n people, who don’t know each other at the beginning. There are m turns. In e…

Light bulbs【差分】

19.98% 1000ms 8192K There are NN light bulbs indexed from 00 to N-1N−1. Initially, all of them are off. A FLIP operation switches the state of a contiguous subset of bulbs. FLIP(L, R)FLIP(L,R)means to flip all bulbs xx such that L \leq x \leq RL≤x≤R. S…

Digit sum【暴力+打表】

Digit sum 33.57% 2000ms 131072K A digit sum S_b(n)S b ​ (n) is a sum of the base-bb digits of nn. Such as S_{10}(233) 2 3 3 8S 10 ​ (233)2338, S_{2}(8)1 0 0 1S 2 ​ (8)1001, S_{2}(7)1 1 1 3S 2 ​ (7)1113. Given NN and bb, you need to calcu…

P1040 加分二叉树【dp+深搜】

题目描述 设一个nn个节点的二叉树tree的中序遍历为&#xff08;1,2,3,…,n1,2,3,…,n&#xff09;&#xff0c;其中数字1,2,3,…,n1,2,3,…,n为节点编号。每个节点都有一个分数&#xff08;均为正整数&#xff09;&#xff0c;记第ii个节点的分数为di,treedi,tree及它的每个子树…

Helloworld【C#】

c#Helloworld 题目描述 请输出样例所示内容 输出 样例输出 ********** Hello,world! ********** using System;namespace ConsoleApp1 {class Program{static void Main(string[] args){Console.WriteLine("**********");Console.WriteLine("Hello,world!&…

判断闰年【C#】

判断闰年 题目描述 使用C#编写一个控制台应用。输入-一个年份&#xff0c;判断是否润年(被4整除&#xff0c;且不被100整除&#xff0c;或者被400整除)。 是闰年输出yes&#xff0c;不是输出no 输入 一个年份 输出 yes或者no 样例输入 1996 样例输出 yes using Syst…

采用递归求第n位数【C#】

题目描述 一数列的规则如下&#xff1a;1、1、2、3、5、8、13、21、34......。求第n位数是多少&#xff1f; 输入 输入一个正整数&#xff0c;代表求第几位数字 输出 输出第n位数字 样例输入 30 样例输出 832040 提示 输入数字必须大于零 using System;namespace C…

歌手的分数【C#】

歌手的分数 题目描述 一青年歌手参加比赛。使用C#编写-一个控制台应用&#xff0c;输入10位评委打分(分值只能为正整数)&#xff0c;计算并输出歌手的平均分(去掉一一个最高分和一一个最低分)。平均分以double数据类型输出。 输入 1 2 3 4 5 6 7 8 9 10 输出 5.5 样例输…

冒泡排序算法(C#)

冒泡排序算法&#xff08;C#&#xff09; 题目描述 使用C#编写一个控制台应用。输入10个整数存入数组中&#xff0c;然后使用冒泡排序算法对一维数组的元素从小到大进行排序&#xff0c;并输出。 输入 在控制台中输入数字&#xff0c;存入一维数组 输出 输出排序后的数…

水仙花数【C#】

题目描述 春天是鲜花的季节&#xff0c;水仙花就是其中最迷人的代表&#xff0c;数学上有个水仙花数&#xff0c;他是这样定义的&#xff1a; “水仙花数”是指一个三位数&#xff0c;它的各位数字的立方和等于其本身&#xff0c;比如&#xff1a;1531^35^33^3。 现在要求输出…

C#异或运算符的使用【C#】

C#异或运算符的使用 题目描述 编写一个控制台应用&#xff0c;采用异或运算符&#xff0c;实现两个整型变量值的交换。并在Program类的Main进行验证。 输入 依次输入2个整数 输出 输出交换前、后两个变量的值 样例输入 12 78样例输出 before exchange first12,second7…

C#类方法【C#】

C#类方法 题目描述 在类Class1中&#xff0c;编写一个类方法IsEven(string number)用于输出参数的奇偶性。并在Program类的Main进行验证性输出。 class Program { static void Main(string[] args) { Console.Write("Input Integer:&quo…