結果

問題 No.3585 Make Ends Meet (Easy)
コンテスト
ユーザー kidodesu
提出日時 2026-07-10 21:40:45
言語 PyPy3
(7.3.17)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
WA  
実行時間 -
コード長 1,142 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 233 ms
コンパイル使用メモリ 96,236 KB
実行使用メモリ 84,480 KB
最終ジャッジ日時 2026-07-10 21:40:51
合計ジャッジ時間 5,605 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge2_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 46 WA * 2
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

def main():
    n, m, k = list(map(int, input().split()))
    N = n*(n-1)//2
    if N-m < k:
        return []
    Ans = [[] for _ in range(k+1)]
    idx = 0
    for i in range(k+1):
        if i == 1:
            for j in range(n-k):
                Ans[i].append(idx)
                idx += 1
        else:
            Ans[i].append(idx)
            idx += 1
    Del = []
    OK = []
    C = set()
    for i in range(k+1):
        if i < k:
            C.add((Ans[i][-1], Ans[i+1][-1]))
        for now in Ans[i]:
            for j in range(i+2, k+1):
                for nxt in Ans[j]:
                    Del.append((now, nxt))
            for nxt in Ans[i]:
                if now < nxt:
                    OK.append((now, nxt))
            if i < k:
                for nxt in Ans[i+1]:
                    OK.append((now, nxt))
    if m < len(Del):
        return []
    m -= len(Del)
    for now, nxt in OK:
        if (now, nxt) in C: continue
        if m:
            m -= 1
            Del.append((now, nxt))
    return Del

Ans = main()
if Ans:
    print("Yes")
    for u, v in Ans:
        print(u+1, v+1)
else:
    print("No")
0