ππ§© ΠΠ°Π΄Π°ΡΠ° ΠΎΠ± ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π»Π°ΡΠΈΠ½ΡΠΊΠΎΠ³ΠΎ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ°
ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ Π·Π°Π΄Π°Π½Π½Π°Ρ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½Π°Ρ ΠΌΠ°ΡΡΠΈΡΠ° Π»Π°ΡΠΈΠ½ΡΠΊΠΈΠΌ ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠΌ.
ΠΠ°ΡΠΈΠ½ΡΠΊΠΈΠΉ ΠΊΠ²Π°Π΄ΡΠ°Ρ β ΡΡΠΎ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½Π°Ρ ΠΌΠ°ΡΡΠΈΡΠ° ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ n x n, ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΡΠΎΠ»Π±Π΅Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π²ΡΠ΅ ΡΠΈΡΠ»Π° ΠΎΡ 1 Π΄ΠΎ n. Π Π‘ΡΠ΅Π΄Π½ΠΈΠ΅ Π²Π΅ΠΊΠ° Π»Π°ΡΠΈΠ½ΡΠΊΠΈΠΌ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ°ΠΌ ΠΏΡΠΈΠΏΠΈΡΡΠ²Π°Π»ΠΈΡΡ ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°: ΡΠ°ΠΊΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠΊΠΊΡΠ»ΡΡΠ½ΡΡ
ΡΠΈΡΡΠ°Π»ΠΎΠ². ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π»Π°ΡΠΈΠ½ΡΠΊΠΎΠ³ΠΎ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ°.
ΠΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅:
- ΡΠΈΡΠ»ΠΎ
nβ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ ΠΈ ΡΡΠΎΠ»Π±ΡΠΎΠ² Π² ΠΌΠ°ΡΡΠΈΡΠ΅;
nΡΡΡΠΎΠΊ, cnΡΠΈΡΠ΅Π» Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ.
ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅:
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠ²Π΅ΡΡΠΈ YES, Π΅ΡΠ»ΠΈ Π²Π²Π΅Π΄Π΅Π½Π½Π°Ρ ΠΌΠ°ΡΡΠΈΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π»Π°ΡΠΈΠ½ΡΠΊΠΈΠΌ ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠΌ, ΠΈ NO Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅.
# ΠΡΠΈΠΌΠ΅Ρ Π²Π²ΠΎΠ΄Π°: 4 2 3 4 1 3 4 1 2 4 1 2 3 1 2 3 4 ΠΡΠΈΠΌΠ΅Ρ Π²ΡΠ²ΠΎΠ΄Π°: #YES
Π Π΅ΡΠ΅Π½ΠΈΠ΅
ΠΠ΅ΡΠ²ΡΠΉ ΡΠΏΠΎΡΠΎΠ±β Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ sorted():
n = int(input())
matrix = [[int(i) for i in input().split()] for _ in range(n)]
for i in range(n):
if sorted(matrix[i]) != list(range(1, n + 1)) or sorted([matrix[j][i] for j in range(n)]) != list(range(1, n + 1)):
print('NO')
break
else:
print('YES')
ΠΡΠΎΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± β Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ all():
n = int(input())
square = [[*map(int,input().split()) ] for i in range(n)]
a = all([all([c in row for c in range(1,n + 1)]) for row in square])
b = all([all([c in row1 for c in range(1, n + 1)]) for row1 in zip(*square)])
print(('NO','YES')[a and b])
Π’ΡΠ΅ΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± β Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ°Π½ΡΠΏΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²:
n = int(input())
sq_set = set(range(1, n + 1))
square = []
for i in range(n):
square.append(list(map(int, input().split())))
tr_square = list(map(list, zip(*square)))
vector_1 = [set(row) == sq_set for row in square]
vector_2 = [set(row) == sq_set for row in tr_square]
vector = vector_1 + vector_2
if all(vector):
print('YES')
else:
print('NO')
ΠΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ ΠΏΠΎ ΡΠ΅ΠΌΠ΅
- π Π‘Π»ΠΎΠ²Π°ΡΠΈ Π² Python: 12 Π·Π°Π΄Π°Ρ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡΠΌΠΈ
- π Python ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΎ ΡΡΠΊΠ·Π°ΠΊΠ΅
- π ΠΠ·Π²Π΅ΡΡΠ½Π°Ρ Π·Π°Π΄Π°ΡΠ° Ρ ΠΏΠΎΡΠ΅ΡΡΠ½Π½ΡΠΌ Π±ΠΈΠ»Π΅ΡΠΎΠΌ: ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Python