「Poetize7」足球比赛

描述 Description

SJZEZ和TSYZ正在进行一轮足球联谊赛,根据规则,这轮比赛有两场,一场在SJZEZ的主场进行,一场在TSYZ的主场进行。胜负判断标准如下:
1.在两场比赛中进球总数较多的一方赢得比赛。
2.如果双方进球总数相同,在对方主场进球更多的一方赢得比赛。
3.如果1、2都相同,胜利者将会随机产生= =
双方已经进行了一场比赛,作为SJZEZ的队长,忘川沧月童鞋想知道:
(1)第二场sjzez最少需要进多少球,才有可能赢得比赛。
(2)第二场sjzez进不超过多少个球,tsyz才有可能赢得比赛。
已知在一场比赛中,一方的进球数不可能多于30个。

输入格式 InputFormat

第一行一个整数t,表示该测试点中数据的组数。
接下来t行,每行一个字符串,描述该组数据中第一场比赛的情况,形式如下:
wccy's team played where game, scored x goals, and conceded y goals.
其中where是'home'或者'away'中的一个,home表示第一场比赛是在sjzez的主场进行,away表示第一场比赛是在tsyz的主场进行。
x,y是整数,分别表示忘川沧月的队伍的进球数,和对方的进球数。

题解:

无脑题。。。

出题人:

考察:枚举验证 / 贪心

方法一:直接枚举所有可能情况,判断是否符合条件,取极限情况为答案。

方法二:贪心。直接计算。

两种方法都能AC,实际上本题只要读懂了题目就是送分题。读入稍微注意下。

代码:(不想写代码了。。。)

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int a,b,c,d,x,y,t;
char pos[];
int main()
{
scanf("%d\n",&t);
while(t--)
{
scanf("%*s%*s%*s");
scanf("%s",pos);
scanf("%*s%*s");
scanf("%d",&x);
scanf("%*s%*s%*s");
scanf("%d",&y);
scanf("%*s");
if(pos[]=='h')
{
a=x,b=y,d=;
c=b+d-a;
if(c<b) c++;
c=max(c,);
printf("%d ",c);
d=; c=b+d-a;
if(c>b) c--;
c=max(min(c,),);
printf("%d\n",c);
}
else
{
c=x,d=y; b=;
a=max(b+d-c,);
printf("%d ",a);
b=;
a=max(min(b+d-c,),);
printf("%d\n",a);
}
}
return ;
}
上一篇:【软件使用】Windows下的Objective-C集成开发环境搭建(IDE)


下一篇:WinForm中回车键实现文本框之间的跳转