From 2f9b60faa955091fb6d07e6c5ec3e6e741e46dd9 Mon Sep 17 00:00:00 2001 From: Bruno Freitas Tissei <bft15@inf.ufpr.br> Date: Sun, 24 Feb 2019 18:26:10 -0300 Subject: [PATCH] Add LA3635 Signed-off-by: Bruno Freitas Tissei <bft15@inf.ufpr.br> --- contests/Cadernaveis/LA3635.cpp | 53 +++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 contests/Cadernaveis/LA3635.cpp diff --git a/contests/Cadernaveis/LA3635.cpp b/contests/Cadernaveis/LA3635.cpp new file mode 100644 index 0000000..20cb4e8 --- /dev/null +++ b/contests/Cadernaveis/LA3635.cpp @@ -0,0 +1,53 @@ +#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; +} -- GitLab