10347: 计算比分
时间限制: 1 Sec 内存限制: 128 MB
提交: 206 解决: 26
[提交] [状态] [讨论版] [命题人:admin]
题目描述
2016年8月,中国奥运健儿在里约奥运会上捷报频传,特别是中国女排夺冠给国人带来了巨大的惊喜。我们知道最新的排球比赛计分规则是:采用五局三胜制。前四局每局25分,每局比赛达到24分时,双方必须相差2分才能分出胜负;第五局为15分,当达到14分时,双方必须相差2分才能决出胜负;如果某一方先胜出三局(不一定是连续的三局)比赛自动终止。现在给出某次A队和B队进行练习赛的记录,请你按上述规则计算他们比赛的比分。记录方法是:A队一次得分就记录一个A,B队一次得分就记录一个B。
现在给你一次练习赛记录的结果,请你编程计算出此次比赛各局的比分,输出获胜的比赛队伍以及各局的比分。
输入
仅一行,包含一个仅出现大写A和大写B的字符串,表示一场比赛的结果,所给数据保证符合实际,字符个数少于150。
输出
共有若干行,第一行仅一个字符A或B,表示获胜的队伍,接下来的若干行依次为比赛每局的比分,每行描述一局比赛的结果。
样例输入
复制样例数据
AAAAAAAAABAAAAABBAAAAABAAAAAABAAABAABAAAAAABBAAAABAAAAAAAAAABAABAABBBAAAAAAAAAAAAAAAAAAAAA
样例输出
A
25:4
25:6
25:5
#include<stdio.h>
#include<math.h>
int main()
{
int a[6],b[6],n=0,i=1,j,k=0,l=0,m=0;
char c;
while(~scanf("%c",&c))
{
if(c=='A')k++;
else l++;
if(i<=4)//前四局
{
if(k>=25 && k-l>=2){a[i]=k;b[i]=l;i++;k=0;l=0;n++;}
if(l>=25 && l-k>=2){a[i]=k;b[i]=l;i++;k=0;l=0;m++;}
}
else //第五局
{
if(k>=15 && k-l>=2){a[i]=k;b[i]=l;i++;k=0;l=0;n++;}
if(l>=15 && l-k>=2){a[i]=k;b[i]=l;i++;k=0;l=0;m++;}
}
if(fabs(m-n)>=3)break;//如果一方先 胜出三局
}
if(n>m)printf("A\n");
else printf("B\n");
n=i;
for(i=1;i<n;i++)
printf("%d:%d\n",a[i],b[i]);
return 0;
}