Select Git revision
-
Bruno Freitas Tissei authored
Signed-off-by:
Bruno Freitas Tissei <bft15@inf.ufpr.br>
Bruno Freitas Tissei authoredSigned-off-by:
Bruno Freitas Tissei <bft15@inf.ufpr.br>
LA3635.cpp 962 B
#include <bits/stdc++.h>
#define EPS 1e-6
#define MOD 1000000007
#define inf 0x3f3f3f3f
#define llinf 0x3f3f3f3f3f3f3f3f
#define fi first
#define se second
#define sz size()
#define pb push_back
#define ende '\n'
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define mset(x, y) memset(&x, (y), sizeof(x))
using namespace std;
typedef long long ll;
typedef pair<int,int> ii;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout << setprecision(9) << fixed;
int t; cin >> t;
while (t--) {
int n, f; cin >> n >> f;
vector<double> v(n);
for (auto &i : v)
cin >> i;
double l = 0.0, r = (double) llinf;
for (int i = 0; i < 300; ++i) {
double m = (l + r) / 2.0;
int p = 0;
for (int j = 0; j < n; ++j)
p += (int) floor((v[j] * v[j] * M_PI) / m);
if (p >= f + 1)
l = m;
else
r = m;
}
cout << l << ende;
}
return 0;
}