3140 -- 【刘峻琳day1-1】冲出亚洲
Description
南非世界杯的硝烟散去不久,眼见着2014巴西世界杯就要来了,被国人不抱希望的中国国家男子足球队(简称中国队)在没有多少人的关注下再度整装出发,参加亚洲区外围赛(简称亚预赛)。中国队在艰难击败了马尔代夫,尼泊尔,东帝汶等强队之后,杀入了亚预赛十强赛。为了降低题目难度,本次十强赛的规则作了一定改变。首先十强赛改为n强赛,n只球队不再分为两组,而是直接进行主客场双循环比赛,最终积分榜前2名的球队直接进入巴西世界杯,第3名的球队将与大洋洲冠军新西兰(常识普及:澳大利亚已加入了亚足联)队争夺一张入场券。由于中国足协的电脑过于老化,无法应付这庞大的积分计算,现在请你在(n-1)*2轮比赛过后统计出结果,并告诉国人中国队是否出线。
友情提示:足球比赛中,获胜的球队将获得3分的积分,失利的球队获得0分的积分,打平双方各得1分。总积分越高者排名越靠前,积分相同时,比较两队净胜球(总进球-总失球),净胜球多者排名靠前,净胜球相同时,进球多者排名靠前。比赛保证不会出现上述数据完全相同的两支球队。
Input
第一行有一个整数n,代表参赛球队的数量,接下来n行,每行一个字符串,为进入n强赛的一个国家。
接下来有(n-1)*2*(n/2)行,每(n/2)行代表一轮比赛,每一行代表一场比赛结果,分明是由空格隔开的国家名、进球数、冒号、进球数、国家名。
最后有一行,一个字母,表示第3名与新西兰比赛的结果,Y表示胜,N表示负。
Output
输出有两行。
第一行是中国队n强赛的最终排名。
第二行是一个字符串,如果出线,请输出"Brazil, we are coming!",否则输出"Go home, China Team!",不含引号。
Sample Input
4
China
Japan
Korea
Iran
China 2 : 1 Japan
Korea 2 : 2 Iran
Iran 0 : 3 China
Japan 1 : 1 Korea
Korea 2 : 0 China
Iran 2 : 1 Japan
Japan 2 : 0 China
Iran 0 : 1 Korea
China 3 : 1 Iran
Korea 3 : 3 Japan
Japan 2 : 4 Iran
China 5 : 1 Korea
Y
Sample Output
1
Brazil, we are coming!
Hint
Description
南非世界杯的硝烟散去不久,眼见着2014巴西世界杯就要来了,被国人不抱希望的中国国家男子足球队(简称中国队)在没有多少人的关注下再度整装出发,参加亚洲区外围赛(简称亚预赛)。中国队在艰难击败了马尔代夫,尼泊尔,东帝汶等强队之后,杀入了亚预赛十强赛。为了降低题目难度,本次十强赛的规则作了一定改变。首先十强赛改为n强赛,n只球队不再分为两组,而是直接进行主客场双循环比赛,最终积分榜前2名的球队直接进入巴西世界杯,第3名的球队将与大洋洲冠军新西兰(常识普及:澳大利亚已加入了亚足联)队争夺一张入场券。由于中国足协的电脑过于老化,无法应付这庞大的积分计算,现在请你在(n-1)*2轮比赛过后统计出结果,并告诉国人中国队是否出线。
友情提示:足球比赛中,获胜的球队将获得3分的积分,失利的球队获得0分的积分,打平双方各得1分。总积分越高者排名越靠前,积分相同时,比较两队净胜球(总进球-总失球),净胜球多者排名靠前,净胜球相同时,进球多者排名靠前。比赛保证不会出现上述数据完全相同的两支球队。
Input
第一行有一个整数n,代表参赛球队的数量,接下来n行,每行一个字符串,为进入n强赛的一个国家。
接下来有(n-1)*2*(n/2)行,每(n/2)行代表一轮比赛,每一行代表一场比赛结果,分明是由空格隔开的国家名、进球数、冒号、进球数、国家名。
最后有一行,一个字母,表示第3名与新西兰比赛的结果,Y表示胜,N表示负。
Output
输出有两行。
第一行是中国队n强赛的最终排名。
第二行是一个字符串,如果出线,请输出"Brazil, we are coming!",否则输出"Go home, China Team!",不含引号。
Sample Input
4
China
Japan
Korea
Iran
China 2 : 1 Japan
Korea 2 : 2 Iran
Iran 0 : 3 China
Japan 1 : 1 Korea
Korea 2 : 0 China
Iran 2 : 1 Japan
Japan 2 : 0 China
Iran 0 : 1 Korea
China 3 : 1 Iran
Korea 3 : 3 Japan
Japan 2 : 4 Iran
China 5 : 1 Korea
Y
#include<iostream>
#include<iomanip>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<cstdio>
using namespace std;
void File_Format()
{
freopen("gogogo.in","r",stdin);
freopen("gogogo.out","w",stdout);
}
int n;
struct TEAM
{
int score,pure,goal,seq;
char name[505];
TEAM()
{
score=pure=goal=0;
}
}a[100005];
char kk[505]={0};
void Getdata()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%s",&a[i].name);
int x,y,g1,g2;
for(int i=1;i<=n*(n-1);i++)
{
scanf("%s",&kk);
for(int j=1;j<=n;j++)
{
if(!strcmp(kk,a[j].name))
{
x=j;break;
}
}
scanf("%d : %d",&g1,&g2);
scanf("%s",&kk);
for(int j=1;j<=n;j++)
{
if(!strcmp(kk,a[j].name))
{
y=j;break;
}
}
a[x].goal+=g1;
a[y].goal+=g2;
a[x].pure+=g1-g2;
a[y].pure+=g2-g1;
if(g1>g2)a[x].score+=3;
else if(g1==g2){a[x].score++;a[y].score++;}
else if(g1<g2)a[y].score+=3;
}
}
bool cmp(TEAM x,TEAM y)
{
return (x.score>y.score)||(x.score==y.score&&x.pure>y.pure)||(x.score==y.score&&x.pure==y.pure&&x.goal>y.goal);
}
int main(){
//File_Format();
Getdata();
sort(a+1,a+n+1,cmp);
char ch;
cin>>ch;
int ans;
for(int i=1;i<=n;i++)
{
if(!strcmp(a[i].name,"China"))
{
ans=i;
break;
}
}
printf("%d\n",ans);
if(ans<=2||(ans==3&&ch=='Y'))
{
puts("Brazil, we are coming!");
}
else puts("Go home, China Team!");
return 0;
}
Sample Output
1
Brazil, we are coming!
Hint
4<=n<=10,n为偶数,国家名字长度不超过20。
把进球净胜球胜局名称全都丢到结构里,最后自定义一下sort即可
一直没用过strcmp(),要是比较两个char[]相同,返回值为0.
另外输入char[]用scanf("%s",&xxx);