結果
問題 | No.2929 Miracle Branch |
ユーザー |
![]() |
提出日時 | 2024-10-14 20:12:39 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 222 ms / 2,000 ms |
コード長 | 1,832 bytes |
コンパイル時間 | 224 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 106,196 KB |
最終ジャッジ日時 | 2024-10-14 20:12:52 |
合計ジャッジ時間 | 12,133 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 43 |
ソースコード
def Eratosthenes(N):isprime = [True for _ in range(N+1)]minfactor = [-1 for _ in range(N+1)]isprime[1] = Falseminfactor[1] = 1for p in range(2, N+1):if not isprime[p]:continueminfactor[p] = pfor q in range(p*2, N+1, p):isprime[q] = Falseif minfactor[q]==-1:minfactor[q] = pprimes = list()for p in range(2,N+1):if isprime[p]:primes.append(p)return primesX = int(input())tmp_prime = list()if X!=1:primes = Eratosthenes(200000)while True:ok = Falsefor i in primes:if X%i==0:ok = TrueX //= itmp_prime.append(i)breakif not ok:break#print(tmp_prime)#print("#", len(tmp_prime), sum(tmp_prime))prime = list()cnt_2 = 0for i in tmp_prime:if i==2:if cnt_2==1:prime.append(4)cnt_2 = 0else:cnt_2 += 1else:if cnt_2==1:prime.append(2)cnt_2 = 0prime.append(i)if cnt_2==1:prime.append(2)if X!=1:prime.append(X)#print(prime)#print("#", len(prime), sum(prime))else:prime = [1]if len(prime)+sum(prime)>2*10**5:print(-1)exit()N = len(prime)+sum(prime)G = [ [] for _ in range(N+1)]idx = len(prime)for i in range(1, len(prime)+1):for j in range(prime[i-1]):idx += 1G[i].append(idx)print(N)for i in range(1, len(prime)):G[i].append(i+1)for i in range(1, N+1):for j in G[i]:print(i,j)col = list()for i in range(len(prime)):col.append("b")for i in range(sum(prime)):col.append("g")print(*col)