求助各位大佬,这代码出什么问题了(WA80)?
查看原帖
求助各位大佬,这代码出什么问题了(WA80)?
483317
ATZdhjeb楼主2021/7/23 14:07
#include <cstdio>
#include <cctype>
char text[25*2500+1];
inline int input(void){
    char c;
    int i = 0;
    while((c = getchar())!='E'){
        if(std::isspace(c)) continue;
        text[i++] = c;
    }
    return i;
}
int main(){
    int len = input(),win = 0,lose = 0,last;
    printf("%d\n",len);
    if(len == 0) printf("0:0\n\n0:0");
    else{
        for(int i = 0;i<len;++i){
            if(text[i] == 'W') ++win;
            else ++lose;
            if(i == len-1 && (win || lose)) printf("%d:%d\n",win,lose);
            else if(win == 11 || lose == 11){
                if(win-lose>=2 || lose-win>=2) printf("%d:%d\n",win,lose),win = lose = 0;
                else for(int j = i+1;j<len;++j){
                    if(text[j] == 'W') ++win;
                    else ++lose;
                    if(j == len-1 && (win || lose)) printf("%d:%d\n",win,lose);
                    else if(win-lose>=2 || lose-win>=2) {printf("%d:%d\n",win,lose),win = lose = 0,i = j;break;}
                }
            }
        }
        win = lose = 0;
        for(int i = 0;i<len;++i){
            if(text[i] == 'W') ++win;
            else ++lose;
            if(i == len-1 && (win || lose)) printf("\n%d:%d",win,lose);
            else if(win == 21 || lose == 21){
                if(win-lose>=2 || lose-win>=2) printf("\n%d:%d",win,lose),win = lose = 0;
                else for(int j = i+1;j<len;++j){
                    if(text[j] == 'W') ++win;
                    else ++lose;
                    if(j == len-1 && (win || lose)) printf("\n%d:%d",win,lose);
                    else if(win-lose>=2 || lose-win>=2) {printf("\n%d:%d",win,lose),win = lose = 0,i = j;return 0;}
                }
            }
        }
    }
    return 0;
}
2021/7/23 14:07
加载中...