有没有大佬帮忙看看这个为啥一分也没有,样例过了,跟着题解大佬写的,球球了

P1042 [NOIP2003 普及组] 乒乓球

cyz180231y @ 2024-11-26 20:03:09

include <stdio.h>

include <iostream>

using namespace std;

int arr[62503];

int main() {

//scanf("%c", &a[i])
int cnt = 0, ans = 0;
char s;
for(int i = 0;  cin >> s && s != 'E'; i++)
{
    if(s == 'W') arr[i] = 1;
    else arr[i] = 2;
}

//``````````````````十一分制``````````````````````

for(int i = 0; ; i++) {

if(arr[i] == 1) ans++;
    if(arr[i] == 2) cnt++;
    if(arr[i] == 0)
    {
        printf("%d : %d\n\n", ans, cnt);
        break;
    }
    if(ans - cnt >= 2 || cnt - ans >= 2)
    {
        if(ans >= 11 || cnt >= 11)
        {
            printf("%d : %d\n", ans, cnt);
            cnt = 0;
            ans = 0;
        }
    }
}

ans = 0;
cnt = 0;

//`````````````````二十一分制``````````````````

for(int i = 0; ; i++)
{
    if(arr[i] == 1) ans++;
    if(arr[i] == 2) cnt++;
    if(arr[i] == 0)
    {
        printf("%d : %d\n", ans, cnt);
        break;
    }
    if(ans - cnt >= 2 || cnt - ans >= 2)
    {
        if(ans >= 21 || cnt >= 21)
        {
            printf("%d : %d\n", ans, cnt);
            ans = 0;
            cnt = 0;
        }
    }
}
return 0;

}


by guoxinhang @ 2024-11-29 19:46:14

AC代码,仅供参考

#include<bits/stdc++.h>
using namespace std;
int a[5050],b[5050],e[5050],d[5050]; 
int main()
{
    int cnt1=0,cnt2=0,cnt3=0,cnt4=0,i=0,k=0,sum=0;
    char c;
    while(true)
    {
        cin>>c;
        if(c=='E')
        {
            if(cnt1!=0||cnt2!=0)
            {
                a[i]=cnt1;
                b[i]=cnt2;
                i++;
            }
            if(cnt3!=0||cnt4!=0)
            {
                e[k]=cnt3;
                d[k]=cnt4;
                k++;
            }
            break;
        }   
        sum++;
        if(c=='W')
        {
            cnt1++;
            cnt3++;
        }
        if(c=='L') 
        {
            cnt2++; 
            cnt4++;     
        }
        if((cnt1>=11||cnt2>=11)&&abs(cnt1-cnt2)>=2)
        {
            a[i]=cnt1;
            b[i]=cnt2;
            i++;
            cnt1=0;
            cnt2=0;
        }
        if((cnt3>=21||cnt4>=21)&&abs(cnt3-cnt4)>=2)
        {
            e[k]=cnt3;
            d[k]=cnt4;
            k++;
            cnt3=0;
            cnt4=0;
        }
    }
    if(i==0&&k==0)
    {
        cout<<0<<':'<<0<<endl;
        cout<<endl;
        cout<<0<<':'<<0;
    }
    for(int j=0;j<i;j++)
    {
        cout<<a[j]<<':'<<b[j]<<endl;
    }
    if(sum==11)
    {
        cout<<0<<':'<<0<<endl;
    }
    cout<<endl;
    for(int j=0;j<k;j++)
    {
        cout<<e[j]<<':'<<d[j]<<endl; 
    }
    if(sum==21)
    {
        cout<<0<<':'<<0<<endl;
    }
    return 0;
}

AC记录


|