[普及-]P1042 乒乓球

Xiaoma 程序设计 2020-02-27



题目链接: https://www.luogu.com.cn/problem/P1042






思路分析


思路很简单,就是把记录放入一个数组中,根据字符来判断是华华的分数+1还是华华对手的分数+1,并且当某一方分数超过了11(21)分(或等于11(21)分)且两者分差≥2时,就输出一局的比赛结果,然后清零,进入下一局进行同样的判断操作。


若某一局没有打完(即前面的输出比赛结束的条件),就已经以“E”结束了,那么就要在前面的循环体结束后继续输出剩余的记录情况。


代码


#include<cstdio>
#include<iostream>
using namespace std;
int main(){
    char result[67000],re;
    int n=0;
    for(int i=0;i<67000;i++){
        cin>>re;
        if(re=='E') break;
        result[n++]=re;
    }
    int score11=0,score2=0;
    int sum1=0,sum2=0;
    for(int i=0;i<=n;i++){
        if(score11>=11&&score11-score2>=2||score2>=11&&score2-score11>=2){
            cout<<score11<<":"<<score2<<endl;
            if(score11>score2) sum1++;
            else sum2++;
            score11=0;score2=0;
        }
        if(result[i]=='W') score11++;
        if(result[i]=='L') score2++;
    }
    if((score11||score2)||(!sum1&&!sum2)) cout<<score11<<":"<<score2<<endl<<endl;
    score11=0;score2=0;
    sum1=0;sum2=0;
    for(int i=0;i<=n;i++){
        if(score11>=21&&score11-score2>=2||score2>=21&&score2-score11>=2){
            cout<<score11<<":"<<score2<<endl;
            if(score11>score2) sum1++;
            else sum2++;
            score11=0;score2=0;
        }
        if(result[i]=='W') score11++;
        if(result[i]=='L') score2++;
    }
    if((score11||score2)||(!sum1&&!sum2)) cout<<score11<<":"<<score2;
    return 0;
}

PREV
[普及+/提高]P1016 旅行家的预算
NEXT
[普及/提高-]P1022 计算器的改良

评论(0)

发布评论