fanluxiang @ 2024-09-23 18:36:57
把评论区和题解中的细节看了个遍,还是60分
#include<bits/stdc++.h>
using namespace std;
int s[62510];
int main()
{
char c;
int h;
for(h=0;cin>>c;h++)
{
if(c=='E') break;
if(c=='W') s[h]=1;
else s[h]=2;
}
if(h==0)
{
printf("0:0\n\n0:0");
return 0;
}
int x=0,y=0;
for(int i=0;i<h;i++)
{
if(s[i]==1) x++;
else y++;
if((x>=11 || y>=11) && max(x,y)-min(x,y)>=2)
{
printf("%d:%d\n",x,y);
x=y=0;
}
if(i==h-1 && x!=0 && y!=0) printf("%d:%d\n",x,y);
}
x=y=0;
cout<<endl;
for(int i=0;i<h;i++)
{
if(s[i]==1) x++;
else y++;
if((x>=21 || y>=21) && max(x,y)-min(x,y)>=2)
{
printf("%d:%d\n",x,y);
x=y=0;
}
if(i==h-1 && x!=0 && y!=0) printf("%d:%d\n",x,y);
}
return 0;
}
by Exschawasion @ 2024-09-23 18:58:17
@fanluxiang
#include<bits/stdc++.h>
using namespace std;
int s[62510];
int main()
{
char c;
int h;
for(h=0;cin>>c;h++)
{
if(c=='E') break;
if(c=='W') s[h]=1;
else s[h]=2;
}
if(h==0)
{
printf("0:0\n\n0:0");
return 0;
}
int x=0,y=0;
bool finished=true;
for(int i=0;i<h;i++)
{
finished=false;
if(s[i]==1) x++;
else y++;
if((x>=11 || y>=11) && max(x,y)-min(x,y)>=2)
{
printf("%d:%d\n",x,y);
finished=true;
x=y=0;
}
if(i==h-1&&(finished||x!=0||y!=0)) printf("%d:%d\n",x,y);
}
x=y=0;
cout<<endl;
finished=true;
for(int i=0;i<h;i++)
{
if(s[i]==1) x++;
else y++;
finished=false;
if((x>=21 || y>=21) && max(x,y)-min(x,y)>=2)
{
printf("%d:%d\n",x,y);
finished=true;
x=y=0;
}
if(i==h-1&&(finished||x!=0||y!=0)) printf("%d:%d\n",x,y);
}
return 0;
}
by fanluxiang @ 2024-09-24 18:20:53
@Exschawasion 谢谢
by fanluxiang @ 2024-09-24 18:31:04
@Exschawasion 为什么加了一个bool就AC了
x != 0 || y != 0
已经隐含了不为0就输出