結果
問題 | No.2929 Miracle Branch |
ユーザー |
![]() |
提出日時 | 2024-10-14 19:56:14 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,525 bytes |
コンパイル時間 | 290 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 16,896 KB |
最終ジャッジ日時 | 2024-10-14 19:56:20 |
合計ジャッジ時間 | 4,255 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 TLE * 1 -- * 1 |
other | -- * 43 |
ソースコード
def prime_numbers(m):primes = set()n = 2while n<=m:if all(n % i != 0 for i in primes):primes.add(n)n += 1return primesX = int(input())tmp_prime = list()if X!=1:primes = prime_numbers(100000)while True:ok = Falsefor i in primes:if X%i==0:ok = TrueX //= itmp_prime.append(i)breakif not ok:break#print(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==2:prime.append(4)cnt_2 = 0elif cnt_2==1:prime.append(2)cnt_2 = 0prime.append(i)if X!=1:prime.append(X)#print(prime)#print("#", len(prime), sum(prime))else:prime = [1]if X>2*10**5 or 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)