[2003年NOIP普及组] 乒乓球
4.[2003年NOIP普及组] 乒乓球
l 分析:根据题意,在11分制时,用for语句过一遍数据并对数据进行分类,如果有数据符合11分制的题意就输出这组比分,将统计的变量清零继续进行,直到遇到E为止,最后将最后一组还没到要求的比分输出。21分制同上。
l
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
int main()
{
char s[100001];
int a=0,b=0,c=0,d=0;
for(int i=0; ;i++)//输入 遇到E停止
{
cin>>s[i];
if(s[i]=='E') break;
}
for(int i=0;i<strlen(s);i++)
{
if(s[i]=='W') a++;
if(s[i]=='L') b++;
if((a>=11||b>=11)&&abs(a-b)>=2) //11分制
{//有一方大于等于11且两方分差大于等于2
cout<<a<<":"<<b<<endl;
a=0;b=0;//每次统计完就清零重新开始
}
}
cout<<a<<":"<<b<<endl;//最后余下的ab输出
cout<<endl;
for(int i=0;i<strlen(s);i++)
{
if(s[i]=='W') c++;
if(s[i]=='L') d++;
if((c>=21||d>=21)&&abs(c-d)>=2)//21分制
{//同上
cout<<c<<":"<<d<<endl;
c=0;d=0;
}
}
cout<<c<<":"<<d<<endl;
return 0;
}

浙公网安备 33010602011771号