34 lines
1.0 KiB
Python
34 lines
1.0 KiB
Python
# 선영이가 이길 수 있는 솔루션은 하나 이상 Because 선영이가 지는 팀을 이길 수 있는 팀이 하나 이상 주어짐
|
|
# 아마도 'Top-Down' 으로 구현하는게 좋을듯 어짜피 마지막에선 선형이가 이길 수 있는 대상이 나와야 하니까
|
|
|
|
while True:
|
|
T = []
|
|
try:
|
|
N = int(input())
|
|
Seed = [list(map(int, input())) for _ in range(N)]
|
|
except EOFError:
|
|
break
|
|
for i in range(N):
|
|
if Seed[0][i]:
|
|
T.append([[(0, i)], [0, i], [0, i]]) # share-plate, check-plate, used-plate
|
|
while T:
|
|
share, check, used = T.pop()
|
|
if len(share) == N-1:
|
|
print(share)
|
|
break
|
|
Temp = [[0]*N for _ in range(len(check))]
|
|
for idx, chck in enumerate(check):
|
|
for i in range(N):
|
|
if chck == i:
|
|
continue
|
|
if not Seed[chck][i] and i not in used:
|
|
Temp[idx][i] = 1
|
|
# 난 못하겠소 다시는 못하겠소
|
|
|
|
|
|
|
|
|
|
|
|
print(T)
|
|
print('g')
|