有大佬帮忙看看bug在哪里吗?有八个不通过
查看原帖
有大佬帮忙看看bug在哪里吗?有八个不通过
552368
supersun0331楼主2021/8/10 15:55

大体思路是

对每个点分别考虑最后两排和其余的

对于其余部分的我们只考虑以之为原点的x轴正半轴,y轴负半轴,y=x的第三象限,y=-x的第四象限部分;

对于最后两排只考虑x轴正半轴;

#include<stdio.h>

int main(){
    char pan[40][40];
    int n;
    scanf("%d",&n);
    getchar();
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            scanf("%c\n",&pan[i][j]);
        }
        getchar();
    }
    for(int i=0;i<n-2;i++){
        for(int j=0;j<n-2;j++){
            if(pan[i][j]!='.'){
                if((pan[i][j]==pan[i][j+1])&&(pan[i][j]==pan[i][j+2])){
                    printf("%c\n",pan[i][j]);
                    return 0;
                }
                if((pan[i][j]==pan[i+1][j])&&(pan[i][j]==pan[i+2][j])){
                    printf("%c\n",pan[i][j]);
                    return 0;
                }
                if((pan[i][j]==pan[i+1][j+1])&&(pan[i][j]==pan[i+2][j+2])){
                    printf("%c\n",pan[i][j]);
                    return 0;
                }
                if((pan[i][j]==pan[i+1][j-1])&&(pan[i][j]==pan[i+2][j-2])){
                    printf("%c\n",pan[i][j]);
                    return 0;
                }
            }
        }
    }
    
    for(int i=n-2;i<n;i++){
        for(int j=0;j<n-2;j++){
            if(pan[i][j]!='.'){
                if((pan[i][j]==pan[i][j+1])&&(pan[i][j]==pan[i][j+2])){
                    printf("%c\n",pan[i][j]);
                    return 0;
                }
            }
        }
    }
    printf("ongoing\n");
    return 0;
}



2021/8/10 15:55
加载中...