結果
問題 |
No.1880 Many Ways
|
ユーザー |
![]() |
提出日時 | 2025-06-12 21:30:51 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,218 bytes |
コンパイル時間 | 235 ms |
コンパイル使用メモリ | 82,000 KB |
実行使用メモリ | 54,736 KB |
最終ジャッジ日時 | 2025-06-12 21:31:53 |
合計ジャッジ時間 | 17,332 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 6 WA * 8 |
ソースコード
def decompose(A): m = 0 while A % 2 == 0 and A != 0: m += 1 A = A // 2 return m, A def main(): import sys A = int(sys.stdin.readline().strip()) if A == 0: print("2 0") return elif A == 1: print("1 0") return m, k = decompose(A) if k > 126: # Handle the case where k is larger than 126 # We need to create a graph where 1 connects to k nodes, each connects to N=k+1 # But ensure N does not exceed 128 if k + 1 > 128: N = 128 M = (N - 1) * 2 print(f"{N} {M}") for i in range(2, N + 1): print(f"1 {i}") for i in range(2, N): print(f"{i} {N}") else: N = k + 1 M = (N - 1) * 2 print(f"{N} {M}") for i in range(2, N + 1): print(f"1 {i}") for i in range(2, N): print(f"{i} {N}") else: # Proceed with the initial approach edges = [] nodes = [1] current_node = 1 # Add layers for each factor of 2 for _ in range(m): a = current_node + 1 b = current_node + 2 edges.append((current_node, a)) edges.append((current_node, b)) next_node = current_node + 3 edges.append((a, next_node)) edges.append((b, next_node)) nodes.extend([a, b, next_node]) current_node = next_node # Add the final layer if k > 1 if k > 1: start = current_node + 1 end = start + k - 1 nodes.extend(range(start, end + 1)) for i in range(start, end + 1): edges.append((current_node, i)) next_node = end + 1 nodes.append(next_node) for i in range(start, end + 1): edges.append((i, next_node)) current_node = next_node # Output the result N = len(nodes) M = len(edges) print(f"{N} {M}") for u, v in edges: print(f"{u} {v}") if __name__ == "__main__": main()