求助!求助!

P1042 [NOIP2003 普及组] 乒乓球

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就输出


|