时间限制: 1 s
 空间限制: 64000 KB
 题目等级 : 黄金 Gold
 
题目描述 Description

A市举行了一场足球比赛

一共有4n支队伍参加,分成n个小组(每小组4支队伍)进行小组循环赛(胜积3分,平积1分,负不计分)

(晋级的球队积分最高)

问晋级的队伍是那些?

PS:每小组只能晋级一支球队

输入描述 Input Description

第一行:一个整数n(保证是四的倍数)

换行读入队伍名

接下来读入比分

输出描述 Output Description

换行输出每支队伍的名字

样例输入 Sample Input

2

King

Soon

River

Ken

King 1:0 Soon

Soon 1:3 River

Ken 0:0 River

King 9:0 River

Soon 7:3 Ken

King 4:1 River

Blue

Son

Rivr

Ke

Blue 1:0 Son

Son 1:3 Rivr

Ke 0:0 Rivr

Blue 4:3 Rivr

Son 7:3 Ke

Blue 4:1 Rivr

样例输出 Sample Output

King

Blue

数据范围及提示 Data Size & Hint

保证每个小组只有一支队伍晋级

1<=n<=100

这题数据不规范到炸!

有的比赛或名字后不加空格 有的加空格

读空格只能过最后一个

不读过前三个

只能分情况做了 ~!

屠龙宝刀点击就送

#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <map> #define Mod 13831 using namespace std;
map<int,int>q;
int n;
struct Node
{
int Hash;
int point;
char Name[];
}Team[];
bool cmp(Node a,Node b)
{
return a.point>b.point;
}
int main()
{
cin>>n;
if(n==)
{
while(n--)
{
char str[],Match[];
int maxn=-0x7fffffff;
for(int k=;k<=;k++)
{
gets(str);
int x=;
int len=strlen(str);
for(int i=;i<len;i++) x=(x*+str[i])%Mod;
Team[k].Hash=x;
strcpy(Team[k].Name,str);
Team[k].point=;
q[x]=k;
}
for(int k=;k<=;k++)
{
gets(Match);
int i=,len=strlen(Match),x1=,x2=,y1=,y2=;
while(Match[i]!=' ') x1=(x1*+Match[i++])%Mod;
i++;
while(Match[i]!=':') x2=x2*+(int)Match[i++]-;
i++;
while(Match[i]!=' ') y2=y2*+(int)Match[i++]-;
i++;
for(int k=i;k<len;k++) y1=(y1*+Match[k])%Mod;
if(x2>y2) Team[q[x1]].point+=;
else if(x2==y2) Team[q[x1]].point++,Team[q[y1]].point++;
else if(x2<y2) Team[q[y1]].point+=;
}
sort(Team+,Team++,cmp);
cout<<Team[].Name<<endl;
for(int i=;i<=;++i) Team[i].point=,Team[i].Hash=;
}
return ;
}
else
{
while(n--)
{
char str[],Match[];
for(int k=;k<=;k++)
{
int x=;cin>>Team[k].Name;
int len=strlen(Team[k].Name);
for(int i=;i<len;i++) x=(x*+Team[k].Name[i])%Mod;
Team[k].point=;
q[x]=k;
}
char ch=getchar();ch=getchar();
for(int l=;l<=;l++)
{
gets(Match);
int i=,len=strlen(Match),x1=,x2=,y11=,y2=;
while(Match[i]!=' ') x1=(x1*+Match[i++])%Mod;
i++;
while(Match[i]!=':') x2=x2*+(int)Match[i++]-;
i++;
while(Match[i]!=' ') y2=y2*+(int)Match[i++]-;
i++;
for(int k=i;k<len;k++) if(Match[k]!=' ')y11=(y11*+Match[k])%Mod;
if(x2>y2) Team[q[x1]].point+=;
else if(x2==y2) Team[q[x1]].point++,Team[q[y11]].point++;
else if(x2<y2) Team[q[y11]].point+=;
}
sort(Team+,Team++,cmp);
cout<<Team[].Name<<endl;
for(int i=;i<=;++i) Team[i].point=;
}
}
return ;
}

codevs 2905 足球晋级的更多相关文章

  1. 【原创】C#搭建足球赛事资料库与预测平台(3) 基础数据表设计

            本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html 开源C#彩票数据资料库系列文章总目录:http://www.cn ...

  2. 足球和oracle列(4):巴西惨败于德国,认为,差额RAC拓扑控制!

    足球与oracle系列(4):从巴西慘败于德国,想到,差异的RAC拓扑对照! 前期回想: 本来想说今晚,回头一想,应该是今早第二场半决赛就要开战了!先来回味一下之前的比赛,本届8支小组赛第一名已经所有 ...

  3. 【noip模拟赛7】足球比赛 树

    描述 在2009的中国城市足球比赛中,在2^N支队中,有一些队在开赛前宣布了退出比赛.比赛采取的是淘汰赛.比如有4支队伍参加,那么1队和2队比赛,3队和4队赛,然后1队和2队的胜者与3队和4队的胜者争 ...

  4. codevs 3289 花匠

    题目:codevs 3289 花匠 链接:http://codevs.cn/problem/3289/ 这道题有点像最长上升序列,但这里不是上升,是最长"波浪"子序列.用动态规划可 ...

  5. JS高级前端开发群加群说明及如何晋级

    JS高级前端开发群加群说明 一.文章背景: 二. 高级群: 三. 加入方式: 四. 说明:   一.文章背景: 去年年初建了几个群,在不经意间火了,一直排在“前端开发”关键字搜索结果第一名.当然取得这 ...

  6. codevs 1082 线段树练习 3(区间维护)

    codevs 1082 线段树练习 3  时间限制: 3 s  空间限制: 128000 KB  题目等级 : 大师 Master 题目描述 Description 给你N个数,有两种操作: 1:给区 ...

  7. codevs 1285 二叉查找树STL基本用法

    C++STL库的set就是一个二叉查找树,并且支持结构体. 在写结构体式的二叉查找树时,需要在结构体里面定义操作符 < ,因为需要比较. set经常会用到迭代器,这里说明一下迭代器:可以类似的把 ...

  8. codevs 1576 最长上升子序列的线段树优化

    题目:codevs 1576 最长严格上升子序列 链接:http://codevs.cn/problem/1576/ 优化的地方是 1到i-1 中最大的 f[j]值,并且A[j]<A[i] .根 ...

  9. codevs 1080 线段树点修改

    先来介绍一下线段树. 线段树是一个把线段,或者说一个区间储存在二叉树中.如图所示的就是一棵线段树,它维护一个区间的和. 蓝色数字的是线段树的节点在数组中的位置,它表示的区间已经在图上标出,它的值就是这 ...

随机推荐

  1. 设置linux服务器下开放端口

    查询 netstat -anp  所有开放端口信息 二.关闭端口号: iptables -A OUTPUT -p tcp --dport 端口号-j DROP 三.打开端口号: iptables -A ...

  2. I.MX6 2G DDR3 16G eMMC

    /************************************************************************* * I.MX6 2G DDR3 16G eMMC ...

  3. java类成员访问权限总结(private,default,protected,public)

  4. jmeter+jenkins+ant部署持续集成测试

    原文地址:http://blog.csdn.net/kaluman/article/details/74535495 开头的注意事项: 1.所有的环境变量和代码,都需要使用英文的符号,变量之间都需要英 ...

  5. npm 脚本

    查看安装的包: npm list -g --depth 0 考虑到用CLI这种方式来运行本地的webpack不是特别方便,我们可以设置一个快捷方式,在package.json添加一个npm脚本(npm ...

  6. WaveNet: 原始音频生成模型

    官方博客 WaveNet: A Generative Model for Raw Audio paper地址:paper Abstract WaveNet是probabilistic and auto ...

  7. A. Vanya and Table

    time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...

  8. gitbucket

    github固然强大,但不怎么适合企业级的开发版本管理,原因相信大家都明白,首先在github上上传和拉取代码速度是比较慢的,再者,在Github上创建一个私有仓库是收费的,那么gitbucket是一 ...

  9. Codeforces 550B 【暴力】

    题意: 有n个数字, 要求在这n个数中选出至少两个数字, 使得它们的和在L,R之间,并且最大的与最小的差值要不小于x 思路: 撒比了啊... 根据状态的话一共也就是2^15-直接暴力,二进制的小魅力还 ...

  10. WPF DataGrid foreground 绑定问题

    初学WPF ,  希望对DataGrid 中所属的一个Column名下的值的颜色动态修改 <DataGridTextColumn Header="隐含回购利率(%)" Bin ...