首页 > 代码库 > 「Poetize7」足球比赛

「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,实际上本题只要读懂了题目就是送分题。读入稍微注意下。

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

 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 int a,b,c,d,x,y,t; 7 char pos[10]; 8 int main() 9 {10  scanf("%d\n",&t);11  while(t--)12  {13   scanf("%*s%*s%*s");14   scanf("%s",pos);15   scanf("%*s%*s");16   scanf("%d",&x);17   scanf("%*s%*s%*s");18   scanf("%d",&y);19   scanf("%*s");20   if(pos[0]==h)21   {22    a=x,b=y,d=0;23    c=b+d-a;24    if(c<b) c++;25    c=max(c,0);26    printf("%d ",c);27    d=30; c=b+d-a;28    if(c>b) c--;29    c=max(min(c,30),0);30    printf("%d\n",c);31   }32   else33   {34    c=x,d=y; b=0;35    a=max(b+d-c,0);36    printf("%d ",a);37    b=30;38    a=max(min(b+d-c,30),0);39    printf("%d\n",a);40   }41  }42  return 0;43 }
View Code

 

「Poetize7」足球比赛