結果
問題 | No.507 ゲーム大会(チーム決め) |
ユーザー |
![]() |
提出日時 | 2017-06-22 13:06:06 |
言語 | Nim (2.2.0) |
結果 |
AC
|
実行時間 | 80 ms / 3,000 ms |
コード長 | 938 bytes |
コンパイル時間 | 3,445 ms |
コンパイル使用メモリ | 66,828 KB |
実行使用メモリ | 7,680 KB |
最終ジャッジ日時 | 2024-06-30 01:29:26 |
合計ジャッジ時間 | 4,977 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 19 |
ソースコード
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 = reversed(A[0..n-1] & A[n + 1..high(A)]) cnt = 0 block hantei: var right = A2.high for i,a in A2: for j in countdown(right,i): if j == i: break hantei if a + A2[j] > point: right = j - 1 cnt += 1 break 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]