結果
問題 | No.67 よくある棒を切る問題 (1) |
ユーザー | mdo |
提出日時 | 2018-07-17 01:21:31 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 119 ms / 5,000 ms |
コード長 | 837 bytes |
コンパイル時間 | 1,161 ms |
コンパイル使用メモリ | 96,032 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-08 12:45:44 |
合計ジャッジ時間 | 4,820 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 31 |
ソースコード
#include <iostream> #include <iomanip> #include <string> #include <cmath> #include <algorithm> #include <vector> #include <set> #include <map> #include <list> #include <stack> #include <queue> #define REP(i,n) FOR(i, 0, n) #define REPC(x,c) for(const auto& x:(c)) #define FOR(i, b, e) for(int i = (int)(b); i < (int)(e); ++i) #define VS vector<string> #define VI vector<int> #define VVI vector<vector<int>> #define ALL(x) (x).begin(),(x).end() #define PAIR pair<int,int> using ll = long long; using namespace std; int main() { ll n, k; cin >> n; VI v(n); REP(i, n) { cin >> v[i]; } cin >> k; double l = 0, r = *max_element(ALL(v)); double mid; REP(i, 100) { mid = (l + r) / 2; ll count = 0; REPC(x, v) { count += (ll)(x / mid); } ((count >= k) ? l : r) = mid; } cout << fixed << setprecision(10) << mid << endl; }