結果
問題 |
No.67 よくある棒を切る問題 (1)
|
ユーザー |
![]() |
提出日時 | 2020-10-26 15:52:33 |
言語 | Java (openjdk 23) |
結果 |
WA
|
実行時間 | - |
コード長 | 980 bytes |
コンパイル時間 | 7,330 ms |
コンパイル使用メモリ | 86,228 KB |
実行使用メモリ | 70,412 KB |
最終ジャッジ日時 | 2025-03-03 11:45:32 |
合計ジャッジ時間 | 36,029 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 28 WA * 2 |
ソースコード
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] sticks = new int[n]; for (int i = 0; i < n; i++) { sticks[i] = sc.nextInt(); } Arrays.sort(sticks); long k = sc.nextLong(); if (n >= k) { System.out.println(sticks[n - (int)k]); } else { double left = sticks[0] / (double)(k / n + 1); double right = sticks[n - 1] + 1; for (int i = 0; i < 1000; i++) { double m = (left + right) / 2; long sum = 0; for (int j = 0; j < n; j++) { sum += (long)(sticks[j] / m); } if (sum >= k) { left = m; } else { right = m; } } System.out.println(left); } } }