| Task: | Keskiarvo |
| Sender: | hltk |
| Submission time: | 2019-05-16 16:52:47 +0300 |
| Language: | C++ |
| Status: | READY |
| Result: | 100 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 12 |
| #2 | ACCEPTED | 17 |
| #3 | ACCEPTED | 71 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.03 s | 1 | details |
| #2 | ACCEPTED | 0.03 s | 1 | details |
| #3 | ACCEPTED | 0.02 s | 1 | details |
| #4 | ACCEPTED | 0.01 s | 1 | details |
| #5 | ACCEPTED | 0.02 s | 1 | details |
| #6 | ACCEPTED | 0.01 s | 2 | details |
| #7 | ACCEPTED | 0.03 s | 2 | details |
| #8 | ACCEPTED | 0.02 s | 2 | details |
| #9 | ACCEPTED | 0.02 s | 2 | details |
| #10 | ACCEPTED | 0.03 s | 2 | details |
| #11 | ACCEPTED | 0.04 s | 3 | details |
| #12 | ACCEPTED | 0.08 s | 3 | details |
| #13 | ACCEPTED | 0.08 s | 3 | details |
| #14 | ACCEPTED | 0.07 s | 3 | details |
| #15 | ACCEPTED | 0.07 s | 3 | details |
| #16 | ACCEPTED | 0.08 s | details |
Code
#include <bits/stdc++.h>
using namespace std;
#define N 100001
// sum_1 / amt_1 > sum_2 / amt_2
// sum_1 * amt_2 > sum_2 * amt_1
long ss[N];
long sum(int a, int b)
{
assert(a <= b);
assert(1 <= a);
return ss[b] - ss[a - 1];
}
int b[N];
int main()
{
int n;
cin >> n;
for (int i = 1; i <= n; ++i) {
int x;
cin >> x;
ss[i] = ss[i-1] + x;
}
for (int i = 1; i <= n; ++i) {
b[i] = 1;
for (;;) {
int c = i - b[i] + 1;
if (c == 1) break;
int j = c - 1 - b[c - 1] + 1;
long s1 = sum(j, i);
long s2 = sum(c, i);
s1 *= i - c + 1;
s2 *= i - j + 1;
if (s2 > s1) break;
b[i] = i - j + 1;
}
}
double res = 0;
for (int i = 1; i <= n; ++i) {
double s = sum(i - b[i] + 1, i);
res = max(res, s / ((double) b[i]));
}
printf("%.9f\n", res);
}
Test details
Test 1
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 100 579911361 197658107 815676285 ... |
| correct output |
|---|
| 980535539 |
| user output |
|---|
| 980535539.000000000 |
Test 2
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 100 541962319 20721724 733683610 9... |
| correct output |
|---|
| 996955791 |
| user output |
|---|
| 996955791.000000000 |
Test 3
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 100 663677497 238679548 892011523 ... |
| correct output |
|---|
| 978858928 |
| user output |
|---|
| 978858928.000000000 |
Test 4
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 100 754557795 14395441 943833407 1... |
| correct output |
|---|
| 998391974 |
| user output |
|---|
| 998391974.000000000 |
Test 5
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 100 308690464 959776379 229201039 ... |
| correct output |
|---|
| 995129158 |
| user output |
|---|
| 995129158.000000000 |
Test 6
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 100 752236199 201329268 457625816 ... |
| correct output |
|---|
| 997456488 |
| user output |
|---|
| 997456488.000000000 |
Test 7
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 5000 314731332 844980432 427902587 ... |
| correct output |
|---|
| 999901597 |
| user output |
|---|
| 999901597.000000000 |
Test 8
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 5000 520967279 915660277 633907984 ... |
| correct output |
|---|
| 999938928 |
| user output |
|---|
| 999938928.000000000 |
Test 9
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 5000 989796225 185146611 419313583 ... |
| correct output |
|---|
| 999908138 |
| user output |
|---|
| 999908138.000000000 |
Test 10
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 5000 510588037 414748990 635670363 ... |
| correct output |
|---|
| 999894105 |
| user output |
|---|
| 999894105.000000000 |
Test 11
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 5000 312043025 563894859 350492609 ... |
| correct output |
|---|
| 999944835 |
| user output |
|---|
| 999944835.000000000 |
Test 12
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 100000 92541013 71039803 247766345 34... |
| correct output |
|---|
| 999984487 |
| user output |
|---|
| 999984487.000000000 |
Test 13
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 100000 423233870 652455282 139386372 ... |
| correct output |
|---|
| 999994375 |
| user output |
|---|
| 999994375.000000000 |
Test 14
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 100000 559308968 52061073 826304361 9... |
| correct output |
|---|
| 999989944 |
| user output |
|---|
| 999989944.000000000 |
Test 15
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 100000 425635648 182598452 773180708 ... |
| correct output |
|---|
| 999996798 |
| user output |
|---|
| 999996798.000000000 |
Test 16
Group:
Verdict: ACCEPTED
| input |
|---|
| 100000 90120093 590318798 59894256 89... |
| correct output |
|---|
| 999999674 |
| user output |
|---|
| 999999674.000000000 |
