結果
| 問題 |
No.507 ゲーム大会(チーム決め)
|
| コンテスト | |
| ユーザー |
takeya_okino
|
| 提出日時 | 2019-08-11 15:31:18 |
| 言語 | Java (openjdk 23) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 991 bytes |
| コンパイル時間 | 2,336 ms |
| コンパイル使用メモリ | 77,876 KB |
| 実行使用メモリ | 63,592 KB |
| 最終ジャッジ日時 | 2024-09-13 20:07:13 |
| 合計ジャッジ時間 | 11,565 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | WA * 2 |
| other | AC * 2 WA * 17 |
ソースコード
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
long m = sc.nextLong();
long A = sc.nextLong();
long[] a = new long[n];
for(int i = 0; i < n - 1; i++) {
a[i] = sc.nextLong();
}
Arrays.sort(a);
long l = 0;
long r = n - 1;
long ans = -1;
while(l < r) {
long med = (l + r) / 2;
long t = A + a[(int)med];
long p = 0;
int left = 0;
int right = n - 2;
while(left < right) {
if(left == (int)med) {
left++;
} else if(right == (int)med) {
right--;
} else {
long s = a[left] + a[right];
if(s > t) {
right--;
} else {
p++;
left++;
}
}
}
if(p > m) {
r = med;
} else {
ans = a[(int)med];
l = med + 1;
}
}
System.out.println(ans);
}
}
takeya_okino