結果
| 問題 |
No.1880 Many Ways
|
| コンテスト | |
| ユーザー |
lam6er
|
| 提出日時 | 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}")
lam6er