結果
問題 |
No.67 よくある棒を切る問題 (1)
|
ユーザー |
![]() |
提出日時 | 2018-06-16 18:44:30 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 1,026 ms / 5,000 ms |
コード長 | 1,127 bytes |
コンパイル時間 | 2,451 ms |
コンパイル使用メモリ | 80,268 KB |
実行使用メモリ | 69,960 KB |
最終ジャッジ日時 | 2025-03-03 11:17:42 |
合計ジャッジ時間 | 29,014 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 30 |
ソースコード
import java.util.Scanner; public class Main{ int[] L; int N; long K; public static void main(String[] args) { Main main=new Main(); main.run(); } void run() { Scanner sc=new Scanner(System.in); N=sc.nextInt(); L=new int[N]; for(int i=0;i<N;i++) { int buf=sc.nextInt(); L[i]=buf; } K=sc.nextLong(); double ub=Integer.MAX_VALUE; double lb=0; double mid=0; for(int i=0;i<100;i++) { mid=(lb+ub)/2; long temp=0; for(int l=0;l<N;l++) { temp+=(long)L[l]/mid; } if(temp>=K) { lb=mid; }else { ub=mid; } } System.out.println(lb); } } //#include "bits/stdc++.h" //using namespace std; // // //int main(){ // int N; // cin >> N; // vector<int> L(N); // for (int i = 0; i < N; i++) // { // cin >> L[i]; // } // // long long K; // cin >> K; // // double low = 0; // double high = 1e9; // for (int t = 0; t < 100; t++) // { // double mid = (low + high) / 2; // long temp = 0; // for (int i = 0; i < N; i++) // { // temp += (long long)(L[i] / mid); // } // if (temp >= K) low = mid; // else high = mid; // } // printf("%.14f\n", low); //}