結果
問題 | No.2929 Miracle Branch |
ユーザー |
![]() |
提出日時 | 2024-06-12 22:26:24 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 162 ms / 2,000 ms |
コード長 | 1,260 bytes |
コンパイル時間 | 289 ms |
コンパイル使用メモリ | 82,480 KB |
実行使用メモリ | 109,012 KB |
最終ジャッジ日時 | 2024-08-25 23:41:53 |
合計ジャッジ時間 | 10,847 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 43 |
ソースコード
from collections import defaultdict X = int(input()) if X == 1: print("2") print("1 2") print("b g") exit() d = defaultdict(int) for i in range(2, 2*10**5+1): while X % i == 0: X //= i d[i] += 1 if X > 1: print(-1) exit() last = -1 cur = 1 E = [] C = [] for k, v in d.items(): if k == 2: for _ in range(v//2): C.append("b") if last != -1: E.append((last,cur)) for i in range(1, 4+1): E.append((cur, cur+i)) C.append("g") last = cur cur += 4+1 if v % 2 == 1: C.append("b") if last != -1: E.append((last,cur)) for i in range(1, 2+1): E.append((cur, cur+i)) C.append("g") last = cur cur += 2+1 else: for _ in range(v): C.append("b") if last != -1: E.append((last,cur)) for i in range(1, k+1): E.append((cur, cur+i)) C.append("g") last = cur cur += k+1 if cur-1 > 2*10**5: print(-1) exit() print(cur-1) for e in E: print(*e) print(" ".join(C))