洛谷P1042题解
第一篇博客先拿这篇水一下
我的方法其实主要是优化了luogu里面两个高赞题解,第一个的缺点在于没有计数器,也导致了ta在处理那种“残局”–就是那种结尾前面不是11分制也不是21分制的比分,用的是
if(win[i]==0){cout<<w<<":"<<l<<endl<<endl;break;}
而第二个的缺点在于=11/21和>=11/21的情况没有合并,导致不必要的分类讨论;
ACcode:
#include<bits/stdc++.h>
using namespace std;
char ch,c[62505];
int w,l,cnt;
int main()
{
while(cin>>ch)
{
if(ch=='E')
break;
else c[++cnt]=ch;
}
for(int i=1;i<=cnt;i++)
{
if(c[i]=='W') w++;
if(c[i]=='L') l++;
if(abs(w-l)>=2)//分差大于等于2
{
if(w>=11||l>=11)//一方分数大于等于11
{
cout<<w<<":"<<l<<endl;
w=0;l=0;
}
}
}
cout<<w<<":"<<l<<endl<<endl;
w=0;l=0;
for(int i=1;i<=cnt;i++)
{
if(c[i]=='W') w++;
if(c[i]=='L') l++;
if(abs(w-l)>=2)//分差大于等于2
{
if(w>=21||l>=21)//一方分数大于等于21
{
cout<<w<<":"<<l<<endl;
w=0;l=0;
}
}
}
cout<<w<<":"<<l;
system("pause");
return 0;
}