Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- const int NMAX = 1e6+5;
- int n;
- double a[NMAX];
- void read() {
- cin >> n;
- for (int i = 1, x; i <= n; i++) {
- cin >> x;
- a[i] = double(x) / 1e6;
- }
- }
- int solve() {
- double ans = 0, sum = 0, prod = 1;
- for (int l = 1, r = 1; l <= n; l++) {
- while (r <= n && sum * prod < (sum + (a[r] / (1.0 - a[r]))) * prod * (1.0 - a[r])) {
- sum += a[r] / (1.0 - a[r]);
- prod *= 1.0 - a[r];
- r++;
- }
- ans = max(ans, sum * prod);
- sum -= a[l] / (1.0 - a[l]);
- prod /= 1.0 - a[l];
- }
- return ans * 1e6;
- }
- signed main() {
- #ifdef LOCAL
- freopen("input.txt", "r", stdin);
- #else
- freopen("cowdate.in", "r", stdin);
- freopen("cowdate.out", "w", stdout);
- #endif
- ios_base::sync_with_stdio(false);
- cin.tie(0);
- cout.tie(0);
- read();
- cout << solve();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment