#11485: 分享通過的程式碼


a12345678665 (marktohark)


#include<stdio.h>
#include<stdlib.h>


int main()
{
while (1)
{
start:
bool row[9][9] = { false };
bool colum[9][9] = { false };
bool nine[9][9] = { false };
int math[9][9];
for (int i = 0; i < 9; i++)
for (int j = 0; j < 9; j++)
if (scanf("%d", &math[i][j]) == EOF)
return 0;

for (int i = 0; i<9; i++)
for (int j = 0; j < 9; j++)
if (row[i][math[i][j] - 1] == false)
row[i][math[i][j] - 1] = true;
else
{
printf("no\n");
goto start;
}

for (int i = 0; i<9; i++)
for (int j = 0; j < 9; j++)
if (colum[i][math[j][i] - 1] == false)
colum[i][math[j][i] - 1] = true;
else
{
printf("no\n");
goto start;
}

int index = 0;
for (int k = 0; k < 9; k += 3)
for (int m = 0; m < 9; m += 3)
{
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
if (nine[index][math[k + i][m + j] - 1] == false)
nine[index][math[k + i][m + j] - 1] = true;
else
{
printf("no\n");
goto start;
}
index++;
}
printf("yes\n");
}
return 0;
}