結果
問題 |
No.507 ゲーム大会(チーム決め)
|
ユーザー |
![]() |
提出日時 | 2017-06-22 12:35:22 |
言語 | Nim (2.2.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 911 bytes |
コンパイル時間 | 3,518 ms |
コンパイル使用メモリ | 66,600 KB |
実行使用メモリ | 13,764 KB |
最終ジャッジ日時 | 2024-06-30 01:29:02 |
合計ジャッジ時間 | 7,800 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 4 WA * 1 TLE * 1 -- * 13 |
ソースコード
import strutils,sequtils,algorithm var L : seq[int] N,M,Ma,mi,n : int A,A2 : seq[int] k : int I,p,cnt,point,j,index : int A = @[] L = stdin.readline.split.map(parseInt) (N,M) = (L[0],L[1]) I = stdin.readline.parseInt for n in 0..<N - 1: k = stdin.readline.parseInt A.add(k) A.sort(system.cmp) Ma = N - 1 mi = 0 while Ma - mi > 0: n = (Ma + mi) div 2 p = A[n] point = I + p A2 = A[0..n-1] & A[n + 1..high(A)] cnt = 0 for i,a in reversed(A2): j = point - a if j <= 0: cnt += A2.len - i - 1 continue index = lowerBound(A2[0..high(A2)-i-1],j + 1) index = A2.len - i - 1 - index if index == 0: break cnt += index if cnt >= M: mi = n + 1 if cnt < M: Ma = n if Ma <= N - 2 and A[mi] == A[Ma]: break if mi > N - 2: echo -1 else: echo A[mi]