結果
問題 | No.507 ゲーム大会(チーム決め) |
ユーザー |
![]() |
提出日時 | 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"