其他分享
首页 > 其他分享> > [2003年NOIP普及组] 乒乓球

[2003年NOIP普及组] 乒乓球

作者:互联网

[2003年NOIP普及组] 乒乓球

思路:将两人比赛成绩分别同时计分,满足比赛规则就记录,依次输出。

分析:在比赛中,当双方比分都大于等于10的情况下要连续赢两球,才算赢。

注意:比完了第一场,下一场还没开始,那也要输出0:0

#include<cstdio>

#include<iostream>

using namespace std;

int main()

{

   int sa[10005]={0},sb[10005]={0};//11赛制

   int ka[10005]={0},kb[10005]={0};//21赛制

   char ch;//要输入的字符

   int t1=1,t2=1;//分别记录不同赛制的不同回合

int sa1=0,sb1=0,sa2=0,sb2=0;//不同赛制a,b两人的分数(计数器)

   int first=0;//标记,用于处理一开始是E的情况

   while(cin>>ch)

  {

    if(ch=='E')//到E为止

    {

      if(first==0)

        {cout<<"0:0"<<endl<<endl<<"0:0";return 0;}

      sa[t1]=sa1;sb[t1]=sb1;

      ka[t2]=sa2;kb[t2]=sb2;

      t1++;t2++;

      break;

    }

    first++;

    if(ch=='W') {sa1++;sa2++;}//同时计数

    if(ch=='L') {sb1++;sb2++;}

    if(sa1>=11&&sa1-sb1>=2||sb1>=11&&sb1-sa1>=2)

      {sa[t1]=sa1;sb[t1]=sb1;t1++;sa1=0;sb1=0;}

    if(sa2>=21&&sa2-sb2>=2||sb2>=21&&sb2-sa2>=2)

     {ka[t2]=sa2;kb[t2]=sb2;t2++;sa2=0;sb2=0;}

  }

   for(int i =1; i<t1 ; i++)

     cout<<sa[i]<<":"<<sb[i]<<endl;

   cout<<endl;

   for(int i=1;i<t2;i++)

     cout<<ka[i]<<":"<<kb[i]<<endl;

    return 0;

}

标签:sb2,sb1,NOIP,++,乒乓球,2003,int,sa2,sa1
来源: https://www.cnblogs.com/xdzxyingrui/p/16578246.html