|
|
@@ -0,0 +1,45 @@
|
|
|
+f = open("INPUT.TXT")
|
|
|
+n = int(f.readline())
|
|
|
+size = n * n
|
|
|
+
|
|
|
+# таблица судоку
|
|
|
+table = []
|
|
|
+for i in range(size):
|
|
|
+ row = list(map(int, f.readline().split()))
|
|
|
+ table.append(row)
|
|
|
+f.close()
|
|
|
+
|
|
|
+# нужные числа
|
|
|
+need = set(range(1, size + 1))
|
|
|
+
|
|
|
+ok = True
|
|
|
+
|
|
|
+# проверка строк
|
|
|
+for i in range(size):
|
|
|
+ if set(table[i]) != need:
|
|
|
+ ok = False
|
|
|
+
|
|
|
+# проверка столбцов
|
|
|
+for j in range(size):
|
|
|
+ col = []
|
|
|
+ for i in range(size):
|
|
|
+ col.append(table[i][j])
|
|
|
+ if set(col) != need:
|
|
|
+ ok = False
|
|
|
+
|
|
|
+# проверка соседей
|
|
|
+for bi in range(n):
|
|
|
+ for bj in range(n):
|
|
|
+ block = []
|
|
|
+ for i in range(n):
|
|
|
+ for j in range(n):
|
|
|
+ block.append(table[bi * n + i][bj * n + j])
|
|
|
+ if set(block) != need:
|
|
|
+ ok = False
|
|
|
+
|
|
|
+out = open("OUTPUT.TXT", "w")
|
|
|
+if ok:
|
|
|
+ out.write("Correct\n")
|
|
|
+else:
|
|
|
+ out.write("Incorrect\n")
|
|
|
+out.close()
|