大佬帮看一下呗
查看原帖
大佬帮看一下呗
1037170
yaokuangda楼主2024/2/22 23:36

为啥我这样的数组就会报WA

#include <algorithm>
#include <iostream>
#include <cstring>

using namespace std;

const int N = 3000;
char loc[N][25];
bool swi;

int main(){
    for(int i=0;i<N;i++){
        for(int j=0;j<25;j++){
            cin>>loc[i][j];
            if(loc[i][j]=='E'){
                swi = true;
                break;
            }
        }
        if(swi) break;
    }    
    int a=0,b=0;
    for(int i=0;i<N;i++){
        for(int j=0;j<25;j++){
            if(loc[i][j]=='W'){
                a++;
            }else if(loc[i][j]=='L'){
                b++;
            }else if(loc[i][j]=='E'){
                cout<<a<<":"<<b<<endl;
                swi = true;
                break;
            }
            if((a>=11||b>=11)&&abs(a-b)>=2){
                cout<<a<<":"<<b<<endl;
                a=0,b=0;
            }
        }
        if(swi) break;
    }
    
    cout<<endl;
    
    a=0,b=0;
    for(int i=0;i<N;i++){
        for(int j=0;j<25;j++){
            if(loc[i][j]=='W'){
                a++;
            }else if(loc[i][j]=='L'){
                b++;
            }else if(loc[i][j]=='E'){
                cout<<a<<":"<<b<<endl;
                swi = true;
                break;
            }
            if((a>=21||b>=21)&&abs(a-b)>=2){
                cout<<a<<":"<<b<<endl;
                a=0,b=0;
            }
        }
        if(swi) break;
    }
    return 0;
}

但是我改成一维数组的时候就好了

#include <algorithm>
#include <iostream>
#include <cstring>

using namespace std;

const int N = 62500;
char loc[N];
bool swi;

int main(){
    for(int i=0;i<N;i++){
        cin>>loc[i];
        if(loc[i]=='E'){
            swi = true;
            break;
        }
    if(swi) break;
    }    
    int a=0,b=0;
    for(int i=0;i<N;i++){
            if(loc[i]=='W'){
                a++;
            }else if(loc[i]=='L'){
                b++;
            }else if(loc[i]=='E'){
                cout<<a<<":"<<b<<endl;
                break;
            }
        if((a>=11||b>=11)&&abs(a-b)>=2){
            cout<<a<<":"<<b<<endl;
            a=0,b=0;
        }
    }
    
    cout<<endl;
    
    a=0,b=0;
    for(int i=0;i<N;i++){
        if(loc[i]=='W'){
            a++;
        }else if(loc[i]=='L'){
            b++;
        }else if(loc[i]=='E'){
            cout<<a<<":"<<b<<endl;
            break;
        }
        if((a>=21||b>=21)&&abs(a-b)>=2){
            cout<<a<<":"<<b<<endl;
            a=0,b=0;
            }
        }
    return 0;
}

别的地方基本没变化

2024/2/22 23:36
加载中...