結果
| 問題 | No.3585 Make Ends Meet (Easy) |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-07-10 23:32:16 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,748 bytes |
| 記録 | |
| コンパイル時間 | 240 ms |
| コンパイル使用メモリ | 96,372 KB |
| 実行使用メモリ | 84,736 KB |
| 最終ジャッジ日時 | 2026-07-10 23:32:22 |
| 合計ジャッジ時間 | 5,809 ms |
|
ジャッジサーバーID (参考情報) |
judge1_0 / judge3_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 44 WA * 4 |
ソースコード
import sys
input = lambda :sys.stdin.readline()[:-1]
ni = lambda :int(input())
na = lambda :list(map(int,input().split()))
yes = lambda :print("yes");Yes = lambda :print("Yes");YES = lambda : print("YES")
no = lambda :print("no");No = lambda :print("No");NO = lambda : print("NO")
#######################################################################
"""
k = n - 1
=> m = n - 1
k = n - 2
=> 2 <= m <= n * (n - 1) // 2 - 1
k = n - 3
=>
k = 1
=> 1 <= m
"""
def solve(n, m, k):
if m < k:
return
if k == 1:
res = []
res.append((0, n - 1))
for i in range(n):
for j in range(i + 1, n):
if len(res) < m:
res.append((i, j))
return res
else:
res = []
# 0, 1, 2, ..., k - 1, n - 1
for i in range(k - 1):
res.append((i, i + 1))
res.append((k-1, n - 1))
for i in range(k, n - 1):
if len(res) < m:
res.append((0, i))
if len(res) < m:
res.append((1, i))
if len(res) < m:
res.append((2, i))
for j in range(i + 1, n - 1):
if len(res) < m:
res.append((i, j))
if len(res) < m:
return
return res
n, m, k = na()
m = n * (n - 1) // 2 - m
res = solve(n, m, k)
if res is None:
print("No")
else:
print("Yes")
f = [[0] * n for i in range(n)]
for i, j in res:
if j < i:
i, j = j, i
f[i][j] = 1
res = []
for i in range(n):
for j in range(i + 1, n):
if f[i][j] == 0:
res.append((i, j))
for i, j in res:
print(i + 1, j + 1)