結果
問題 | No.2929 Miracle Branch |
ユーザー |
![]() |
提出日時 | 2024-10-12 15:43:37 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 164 ms / 2,000 ms |
コード長 | 1,013 bytes |
コンパイル時間 | 184 ms |
コンパイル使用メモリ | 82,460 KB |
実行使用メモリ | 83,824 KB |
最終ジャッジ日時 | 2024-10-12 15:43:49 |
合計ジャッジ時間 | 10,630 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 43 |
ソースコード
from collections import * def prime_decomposition(N): #O(sqrt(N)) P=defaultdict(int) for i in range(2,N): if i*i>N: break if i>2*10**5: print(-1) exit() if N%i==0: j=0 while N%i==0: N//=i j+=1 P[i]=j if N!=1: P[N]=1 return P X=int(input()) if X==1: print(2) print(1,2) print('b','g') exit() px=prime_decomposition(X) L=[] for k,v in px.items(): if k==2: for _ in range(v//2): L.append(4) if v%2==1: L.append(2) else: for _ in range(v): L.append(k) s=0 for i in L: s+=i+1 if s>2*10**5: print(-1) exit() print(s) for i in range(len(L)-1): print(i+1,i+2) now=len(L) for i in range(len(L)): for _ in range(L[i]): print(i+1,now+1) now+=1 C=[None]*now for i in range(len(L)): C[i]='b' for i in range(len(L),now): C[i]='g' print(*C)