結果
問題 |
No.2929 Miracle Branch
|
ユーザー |
![]() |
提出日時 | 2024-10-12 16:44:21 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,315 bytes |
コンパイル時間 | 143 ms |
コンパイル使用メモリ | 82,436 KB |
実行使用メモリ | 103,628 KB |
最終ジャッジ日時 | 2024-10-12 16:44:46 |
合計ジャッジ時間 | 10,675 ms |
ジャッジサーバーID (参考情報) |
judge / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 24 WA * 19 |
ソースコード
from collections import deque, defaultdict, Counter from bisect import bisect_left, bisect_right from itertools import permutations, combinations from functools import cmp_to_key, cache from heapq import heappop, heappush import math, sys import pypyjit pypyjit.set_param('max_unroll_recursion=-1') sys.setrecursionlimit(10**7) _int = lambda x: int(x)-1 MOD = 998244353 INF = 1<<62 Yes, No = "Yes", "No" M = 200000 X = int(input()) def prime(num): num = int(num) p = [] if num < 2: return p p.append(2) memo = [i%2 for i in range(num+1)] for i in range(3, num+1, 2): if memo[i] == 0: continue p.append(i) for j in range(i, num+1, i): memo[j] = 0 return p P = prime(M) if X < 6: print(X+1) for i in range(X): print(1, i+2) C = ["b"]+["g"]*X print(*C) exit() cur = 1 last = -1 UV = [] C = [] for p in P: while X%p == 0: if cur+p+1 > M: print(-1) exit() par = cur if last != -1: UV.append((last, par)) last = par C.append("b") cur += p+1 for i in range(p): UV.append((par, par+i+1)) C.append("g") X //= p if X != 1: print(-1) exit() print(len(C)) for u, v in UV: print(u, v) print(*C)