結果
| 問題 | No.3585 Make Ends Meet (Easy) |
| コンテスト | |
| ユーザー |
titia
|
| 提出日時 | 2026-07-12 04:42:08 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
AC
|
| 実行時間 | 76 ms / 2,000 ms |
| + 894µs | |
| コード長 | 1,624 bytes |
| 記録 | |
| コンパイル時間 | 248 ms |
| コンパイル使用メモリ | 96,108 KB |
| 実行使用メモリ | 85,056 KB |
| 最終ジャッジ日時 | 2026-07-12 04:42:29 |
| 合計ジャッジ時間 | 5,660 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge2_1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 48 |
ソースコード
# 解説を見た。
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(3,len(R)):
a=i
b=R[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)
titia