結果
問題 |
No.1880 Many Ways
|
ユーザー |
![]() |
提出日時 | 2025-03-31 17:59:10 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,740 bytes |
コンパイル時間 | 228 ms |
コンパイル使用メモリ | 82,488 KB |
実行使用メモリ | 80,728 KB |
最終ジャッジ日時 | 2025-03-31 18:00:09 |
合計ジャッジ時間 | 17,399 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 6 WA * 2 RE * 6 |
ソースコード
A = int(input()) if A == 0: print("2 0") elif A == 1: print("1 0") else: factors = [] a = A while a > 1: for k in range(3, 1, -1): # Check 3 first, then 2 if a % k == 0: factors.append(k) a = a // k break else: # Prime number remaining factors.append(a) a = 1 sum_factors = sum(factors) # Calculate total nodes n = sum_factors + 2 # sum_factors layers nodes + start(1) + end if n > 128: # Re-try factorizing, prioritizing more 2's might help in some cases # Alternatively, this problem should ensure a valid solution exists factors = [] a = A while a > 1: for k in range(2, 1, -1): if a % k == 0: factors.append(k) a = a // k break else: factors.append(a) a = 1 sum_factors = sum(factors) n = sum_factors + 2 if n > 128: # If still no, it's a problem, but per problem statement, this won't happen pass # Construct layers layers = [[1]] current_node = 2 for k in factors: layer = list(range(current_node, current_node + k)) layers.append(layer) current_node += k layers.append([current_node]) # End node m = 0 edges = [] for i in range(len(layers) - 1): from_layer = layers[i] to_layer = layers[i + 1] for u in from_layer: for v in to_layer: edges.append((u, v)) m += 1 print(f"{current_node} {m}") for u, v in edges: print(f"{u} {v}")