#5886: 不是TLE就是輸出行數過少


robinsa87 (GreenHorn)


#include<stdio.h>
int a,b,c,final[4];
int sudoku[10][10];
int test(int x,int y){
    for(a=1;a<=3;a++){
    for(b=1;b<=3;b++){
    for(c=1;c<=3;c++){
    if (( (sudoku[x+a-1][y+b-1]==sudoku[x][y+c-1] && a != 1) || (sudoku[x+a-1][y+b-1]==sudoku[x+1][y+c-1] && a!=2 ) || (sudoku[x+a-1][y+b-1]==sudoku[x+2][y+c-1] && a!=3) ) && b!=c){return 0; break;}
    }
    }
    }
    return 1;
}
int finaltest(){
    for(a=1;a<=9;a++){
    for(b=1;b<=9;b++){
    for(c=1;c<=9;c++){
    if ((sudoku[a][b]==sudoku[a][c] || sudoku[b][a]==sudoku[c][a] ) && b!=c){return 0; break;}
    }
    }
    }
    return 1;
}
int main(){
    for (final[3]=1;final[3]<=2;final[3]++){
    for (a=1;a<=9;a++){
        for(b=1;b<=9;b++){
        scanf("%1d",&sudoku[a][b]);
        }
    }
    final[final[3]]=test(1,1)+test(4,1)+test(7,1)+test(1,4)+test(4,4)+test(7,4)+test(1,7)+test(4,7)+test(7,7)+finaltest();
    }
    if (final[1] == 10){printf("yes\n");}else{printf("no\n");}
    if (final[2] == 10){printf("yes\n");}else{printf("no\n");}
    return 0;
}