結果
問題 | No.1831 Parasol |
ユーザー |
![]() |
提出日時 | 2022-02-04 23:29:50 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 291 ms / 2,000 ms |
コード長 | 1,081 bytes |
コンパイル時間 | 340 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 21,888 KB |
最終ジャッジ日時 | 2024-06-11 12:57:20 |
合計ジャッジ時間 | 3,901 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 19 |
ソースコード
N = int(input()) print(2*N-1) p = [[str(2*N-1)] for i in range (0, 2*N-1)] if N == 1: print(1) exit() if N == 2: print('3 2') print('3 2') print('3 1') exit() if N == 5: print('9 8 7 6 4') print('9 8 7 6 4') print('9 8 7 6 3') print('9 8 7 5 4') print('9 8 7 5 3') print('9 8 7 5 2') print('9 8 6 5 2') print('9 8 6 5 1') print('9 7 6 4 3') import collections as col d = col.deque() for i in range (0, 2*N-2): q = 2*N-2-i for j in range (0, q): d.append(str(q)) for i in range (0, (N-2)*(2*N-1)): p[i%(2*N-1)].append(d.popleft()) ikkai = set() mate = set() for i in range (0, 2*N-1): c = 0 s= "".join(p[i]) while c == 0: q = d.popleft() if s+q in mate: d.append(q) else: if s+q in ikkai: mate.add(s+q) else: ikkai.add(s+q) c = 1 p[i].append(q) for i in range (0, len(p)): v = [] for j in range (0, len(p[i])): v.append(int(p[i][j])) print(*v)