結果

問題 No.67 よくある棒を切る問題 (1)
ユーザー Twizz
提出日時 2017-05-19 23:18:09
言語 C++11
(gcc 4.8.5)
結果
WA  
実行時間 -
コード長 624 Byte
コンパイル時間 1557 ms
使用メモリ 3100 KB

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
bow001.txt WA -
bow002.txt WA -
bow003.txt AC 190 ms
3096 KB
bow004.txt WA -
bow005.txt WA -
bow006.txt AC 226 ms
3100 KB
bow007.txt WA -
bow008.txt WA -
bow009.txt AC 173 ms
2892 KB
bow010.txt WA -
bow011.txt WA -
bow012.txt AC 193 ms
2868 KB
bow013.txt AC 192 ms
3096 KB
bow014.txt AC 193 ms
3100 KB
bow015.txt AC 192 ms
3096 KB
bow016.txt AC 218 ms
3096 KB
bow017.txt AC 217 ms
3100 KB
bow018.txt AC 218 ms
3096 KB
bow019.txt AC 175 ms
2948 KB
bow020.txt AC 185 ms
3028 KB
challenge01.txt AC 3 ms
1536 KB
system_test1.txt WA -
system_test2.txt WA -
system_test3.txt AC 4 ms
1544 KB
system_test4.txt WA -
system_test5.txt WA -
system_test6.txt WA -
テストケース一括ダウンロード

ソースコード

diff #
#include"bits/stdc++.h"

//#include<bits/stdc++.h>
using namespace std;
#define print(x) cout<<x<<endl;
#define rep(i,a,b) for(int i=a;i<b;i++)
#define REP(i,a) for(int i=0;i<a;i++)
typedef long long ll;
const ll mod = 10000000000;

int n, k;
double l[200002];

bool check(double mid) {
	int count = 0;
	REP(i, n) {
		count += (int)(l[i] / mid);
	}
	if (count >= k)return 1;
	else { return 0; }
}

int main() {
	cin >> n;
	REP(i, n) { cin >> l[i]; }
	cin >> k;
	double lb =0, ub = mod;
	REP(i,100) {
		double mid = (lb + ub) / 2.0;
		if (check(mid)) { lb = mid; }
		else { ub = mid; }
	}
	printf("%.14f\n", ub);
	return 0;
}
0