From e854b9abb1d6436d6f8e953884dc6eb68134a5db Mon Sep 17 00:00:00 2001 From: yenru0 Date: Tue, 1 Apr 2025 14:07:06 +0900 Subject: [PATCH] complete 7625.py --- zeta_python/completed/7625.py | 41 +++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 zeta_python/completed/7625.py diff --git a/zeta_python/completed/7625.py b/zeta_python/completed/7625.py new file mode 100644 index 0000000..48627e6 --- /dev/null +++ b/zeta_python/completed/7625.py @@ -0,0 +1,41 @@ +import sys + +input = sys.stdin.readline + + +class SC2ReasonableRanking: + def __init__(self, n: int, arr: list[list[int]]): + self.n: int = n + self.arr: list[list[int]] = arr + self.ranks: list[int] = [] + + def insert(self, idx: int): + if self.ranks: + if self.arr[self.ranks[-1]][idx]: + self.ranks.append(idx) + else: + for i in range(len(self.ranks) - 2, -1, -1): + if ( + self.arr[self.ranks[i]][idx] + and self.arr[idx][self.ranks[i + 1]] + ): + self.ranks.insert(i + 1, idx) + break + else: + self.ranks.insert(0, idx) + else: + self.ranks.append(idx) + + def solve(self) -> str: + if not self.ranks: + for i in range(self.n): + self.insert(i) + return self.ranks + + +if __name__ == "__main__": + while (n := int(input())) != 0: + arr = [list(map(int, input().strip())) for _ in range(n)] + solver = SC2ReasonableRanking(n, arr) + print(*map(lambda x: x + 1, solver.solve()), end="") + print()