P1042 [NOIP2003 普及组] 乒乓球
1.题目理解:即使到达11也要满足分差大于1 即不存在11:10
在 11 分制下,此时比赛的结果是华华第一局 11 比 0 获胜,第二局 11 比 0获胜,正在进行第三局,当前比分 1 比 1。而在 21分制下,此时比赛结果是华华第一局 21 比 0 获胜,正在进行第二局,比分 2 比 1。如果一局比赛刚开始,则此时比分为 0 比 0。直到分差大于或者等于 2,才一局结束。
2.卡测试点
第一种,可能一开始就直接结束 还是要输出0:0 空行 0:0
3.重点
可能是WWWWWWWWWWWE 还需要输出11:0 空行 0:0
0:0的这个结果也需要输出
#include<iostream>
using namespace std;
int main()
{
int i=0;
char s[100000],temp;
while(1)
{
cin>>temp;
if(temp=='E')
{
break;
}
s[i]=temp;
i++;
}
if(i==0) cout<<"0:0"<<endl<<endl<<"0:0";
else
{
int left=0,right=0;
for(int j=0;j<i;j++)
{
if(s[j]=='W') left++;
if(s[j]=='L') right++;
if(left>=11&&left-right>1)
{
cout<<left<<":"<<right<<endl;
left=0;
right=0;
}
if(right>=11&&right-left>1)
{
cout<<left<<":"<<right<<endl;
left=0;
right=0;
}
if(j==i-1) cout<<left<<":"<<right<<endl;//0:0的这个结果也需要输出
}
cout<<endl;
left=0,right=0;
for(int j=0;j<i;j++)
{
if(s[j]=='W') left++;
if(s[j]=='L') right++;
if(left>=21&&left-right>1)
{
cout<<left<<":"<<right;
if(j!=i-1) cout<<endl;
left=0;
right=0;
}
if(right>=21&&right-left>1)
{
cout<<left<<":"<<right;
if(j!=i-1) cout<<endl;
left=0;
right=0;
}
if(j==i-1) cout<<left<<":"<<right;
}
}
return 0;
}