結果
| 問題 |
No.507 ゲーム大会(チーム決め)
|
| コンテスト | |
| ユーザー |
t8m8⛄️
|
| 提出日時 | 2017-04-28 02:08:09 |
| 言語 | Nim (2.2.0) |
| 結果 |
AC
|
| 実行時間 | 68 ms / 3,000 ms |
| コード長 | 737 bytes |
| コンパイル時間 | 3,325 ms |
| コンパイル使用メモリ | 66,268 KB |
| 実行使用メモリ | 6,912 KB |
| 最終ジャッジ日時 | 2024-06-30 01:10:06 |
| 合計ジャッジ時間 | 4,941 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 19 |
ソースコード
import strutils, sequtils, algorithm
proc f(a: seq[int]; x, mid, n, m: int): bool =
var
val = x + a[mid]
b = concat(a[0..mid-1], a[mid+1..n-2])
(l, r) = (0, n-3)
cnt = 0
while l < r:
var p = b[l] + b[r]
if p > val:
cnt.inc
l.inc
r.dec
else:
l.inc
result = cnt < m
when isMainModule:
var
input = stdin.readline.split.map(parseint)
(n, m) = (input[0], input[1])
a = newSeq[int]()
x = stdin.readline.parseint
for i in 0..n-2:
a.add stdin.readline.parseint
a.sort(system.cmp)
var (l, r) = (-1, n-2)
while r - l > 1:
var mid = (l + r) div 2
if f(a, x, mid, n, m): r = mid
else: l = mid
echo if f(a, x, r, n, m): $a[r] else: "-1"
t8m8⛄️