結果

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

ソースコード

diff #
raw source code

# 解説を見た。

import sys
input = sys.stdin.readline

N,M,K=list(map(int,input().split()))

if K==1:
    if M==N*(N-1)//2:
        print("No")
    else:
        print("Yes")
        ANS=[]

        for i in range(1,N+1):
            for j in range(i+1,N+1):
                if i==1 and j==N:
                    continue
                else:
                    ANS.append((i,j))

        ANS=ANS[:M]

        for a,b in ANS:
            print(a,b)

    exit()

R=[1]

for i in range(K-1):
    R.append(R[-1]+1)

R.append(N)

SET=set()

for i in range(1,len(R)):
    SET.add((R[i-1],R[i]))
    SET.add((R[i],R[i-1]))

ANS=[]
AS=set()

ANS.append((1,N))
AS.add((1,N))

for i in range(len(R)):
    for j in range(i+1,len(R)):
        a=R[i]
        b=R[j]

        if (a,b) in SET:
            pass
        else:
            if (a,b) in AS:
                pass
            else:
                ANS.append((a,b))
                AS.add((a,b))



for i in range(K+1,N):
    for j in range(1,N+1):
        if j in R[:3]:
            pass
        elif i==j:
            continue
        else:
            a=i
            b=j
            if a>b:
                a,b=b,a
            if (a,b) in SET:
                pass
            else:
                if (a,b) in AS:
                    pass
                else:
                    ANS.append((a,b))
                    AS.add((a,b))        


if len(ANS)>M:
    print("No")
    exit()


for i in range(1,N+1):
    for j in range(i+1,N+1):
        if (i,j) in SET:
            pass
        elif (i,j) in AS:
            pass
        else:
            ANS.append((i,j))
            AS.add((i,j))

ANS=ANS[:M]

if len(ANS)<M:
    print("No")
    exit()

print("Yes")
for a,b in ANS:
    print(a,b)






0