結果
| 問題 | No.2929 Miracle Branch |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-06-21 11:27:56 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
AC
|
| 実行時間 | 174 ms / 2,000 ms |
| コード長 | 1,874 bytes |
| 記録 | |
| コンパイル時間 | 295 ms |
| コンパイル使用メモリ | 85,632 KB |
| 実行使用メモリ | 133,248 KB |
| 最終ジャッジ日時 | 2026-06-21 11:28:08 |
| 合計ジャッジ時間 | 10,925 ms |
|
ジャッジサーバーID (参考情報) |
judge2_1 / judge3_1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 43 |
ソースコード
INFTY = 2*10**5
P = list(range(INFTY+1))
P[1] = 0
for i in range(2,INFTY+1):
if i*i>INFTY:break
for j in range(i*i,INFTY+1,i):
P[j] = P[i]
Q = []
for i in range(2,INFTY+1):
if P[i] == i:
Q.append(i)
X = int(input())
if X==1:
print(2)
print(1,2)
print("b","g")
else:
D = {}
x = X
for p in Q:
if x==1:break
while x%p==0:
D[p] = D.get(p,0)+1
x = x//p
if x>1:
print(-1)
else:
A = []
Col = {}
v = 1
V = []
for p in D:
if p==2:
for i in range(D[p]//2):
if len(V)>0:
A.append((V[-1],v))
for j in range(1,4+1):
A.append((v,v+j))
Col[v+j] = "g"
V.append(v)
Col[v] = "b"
v += 5
if D[p]%2==1:
if len(V)>0:
A.append((V[-1],v))
for j in range(1,2+1):
A.append((v,v+j))
Col[v+j] = "g"
V.append(v)
Col[v] = "b"
v += 3
else:
for i in range(D[p]):
if len(V)>0:
A.append((V[-1],v))
for j in range(1,p+1):
A.append((v,v+j))
Col[v+j] = "g"
V.append(v)
Col[v] = "b"
v += p+1
n = len(A)+1
if n>INFTY:
print(-1)
else:
print(n)
for u,v in A:
print(u,v)
Col = sorted(list(Col.items()),key=lambda x:x[0])
Col = [Col[i][1] for i in range(n)]
print(*Col)