时间限制: 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. springboot web项目搭建

    1.选择spring initializr 2.填写应用名称及设置相关配置,建议使用默认配置即可 3.选择相关技术,我们现在web技术 4.填写项目名称 5.项目文件结构如下 6.直接运行 java ...

  2. laya在微信小游戏中加载BitmapFont失效的问题

    发布为微信小游戏后,在微信工具中测试时总是提示加载retry to load TheRed.fnt,并以error告终.由于没有任何出错信息,无奈之下只好阅读源码.对BitmapFont的处理分为两个 ...

  3. solr安装-tomcat单机版

    今天又装了一次solr,之前太忙没顾得上写安装文档,今天抽时间记录下来安装过程,供小白们参考. 1. 准备工作 1. 服务器:linux 2.web服务器apache-tomcat,我的路径:/usr ...

  4. spring配置mongodb连接副本集多个节点

    mongodb版本3.4.x 1.配置副本集 先配置副本集,可参考我之前写的文章:http://blog.csdn.net/fuck487/article/details/78287362 注意:必须 ...

  5. printf(“%06d\n”,x);

    %06d : %是格式化输入接受参数的标记 0格式化命令:结果将用零来填充 6:填充位数 d:代表十进制 数据 printf(“%06d\n”,x); console: 000001 000002 0 ...

  6. Cocos2d-x 3.2 创建新应用

    1.cd 到 Cocos2d-x 3.2 的目录: 2.python setup.py: 3.source /Users/netty/.bash_profile ; 4.cocos new TestP ...

  7. UVaLive 7461 Separating Pebbles (暴力)

    题意:给出平面上的两类点,判断是否能画一条直线将两类点完全分割开来. 析:用暴力去枚举任意两点当作直线即可. 代码如下: #pragma comment(linker, "/STACK:10 ...

  8. c# 组件无法下断点

    1. c#组件 2.断点能下,且运行中断点本身显示正常(正常实心红点,不是白底红圈) 3.运行中无法进入组件 4.主程序中,组件的实例无法被观测到,调试显示:无法计算得到这个对象 , 但是程序能运行 ...

  9. bzoj 3230: 相似子串【SA+st表+二分】

    总是犯低级错误,st表都能写错-- 正反分别做一遍SA,预处理st表方便查询lcp,然后处理a[i]表示前i个后缀一共有多少个本质不同的子串,这里的子串是按字典序的,所以询问的时候直接在a上二分排名就 ...

  10. bzoj 4456 [Zjoi2016]旅行者

    题面 https://www.lydsy.com/JudgeOnline/problem.php?id=4456 题解 分治 设当前work的区间为(x1,y1,x2,y2) 我们将长边分成两半 不妨 ...