結果

問題 No.3506 All Distance is Square Number
コンテスト
ユーザー toka0428
提出日時 2026-03-15 04:49:40
言語 PyPy3
(7.3.17)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
WA  
実行時間 -
コード長 1,163 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 250 ms
コンパイル使用メモリ 85,276 KB
実行使用メモリ 81,580 KB
最終ジャッジ日時 2026-04-17 19:35:12
合計ジャッジ時間 7,776 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge3_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other WA * 29
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import sys

N = int(sys.stdin.readline())

# 1. グラフの構築
edges = []
# グループA (0-(N-1))
for i in range(N-1):
    edges.append((i, i+1, 2*i+1))
# グループB (1-i)
group_b_start = len(edges)
for i in range(2, N):
    edges.append((1, i, 2*i))

# グラフ出力
print(len(edges))
for u, v, c in edges:
    print(f"{u} {v} {c}")

# 2. パス出力
for i in range(N):
    for j in range(i+1, N):
        path = []
        if i == 0:
            # 0からjまで歩く
            for k in range(j):
                path.append(k)
        else:
            # 解説通り: i -> ... -> 1 -> (i+1) -> ... -> j
            # 1. i から 1 まで戻る (グループA)
            for k in range(i-1, 0, -1):
                path.append(k)
            # 2. 1 から (i+1) へジャンプ (グループB)
            # 頂点1と「target」を結ぶ辺Bのインデックスは group_b_start + (target - 2)
            path.append(group_b_start + (i + 1 - 2))
            # 3. (i+1) から j まで歩く (グループA)
            for k in range(i+1, j):
                path.append(k)
        
        print(f"{len(path)} {' '.join(map(str, path))}")
0