第12个点:
Wrong Answer. wrong answer The answer is wrong: expected = 0.650000, found = 0.660000
问题是0.01的误差怎么被卡掉了 代码
#include <bits/stdc++.h>
#define ms(x,v) memset(x, v, sizeof(x))
using namespace std;
typedef unsigned long long ull;
typedef long long ll;
typedef double db;
void read(ll &l) { scanf("%lld", &l); }
void read(int &i) { scanf("%d", &i); }
void read(db &d) { scanf("%lf", &d); }
int n, k;
db l[10005];
// O(n logk)
bool check(db x) {
int ans = 0;
for (int i = 1; i <= n; ++i) {
ans += (int)(l[i] / x);
}
if (ans >= k) return true;
return false;
}
int main() {
read(n); read(k);
for (int i = 1; i <= n; ++i) {
read(l[i]); l[i] *= 100;
}
db l = 0, r = 10000000.00;
while (r - l >= 1) {
db mid = (l + r) / 2;
if (check(mid)) {
l = mid;
} else {
r = mid - 1;
}
}
printf("%.2lf", r / 100);
return 0;
}