QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#776544 | #8242. V-Diagram | dodola | WA | 65ms | 6004kb | C++17 | 1.6kb | 2024-11-23 19:18:13 | 2024-11-23 19:18:13 |
Judging History
answer
#include <bits/stdc++.h>
#include <functional>
#include <iomanip>
#include <utility>
#include <vector>
#define x first
#define y second
using namespace std;
typedef double ld;
typedef unsigned long ul;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<ll, ll> pll;
const int maxn = 2e5 + 50;
const ll inf = 0x3f3f3f3f3f3f;
const vector<pll> dxy = {{-1, 0}, {1, 0}, {0, 1}, {0, -1}};
ll a[maxn], pre[maxn];
void solve() {
ll n;
cin >> n;
ll lp, rp, pi, mna = inf;
for (ll i = 1; i <= n; i++) {
cin >> a[i];
pre[i] = pre[i - 1] + a[i];
if (mna > a[i]) {
pi = lp = rp = i;
mna = a[i];
}
}
ll sum = 0, len = 0, llp = lp, rrp = rp;
ld rcur = 0.0, lcur = 0.0;
while (lp >= 1) {
sum += a[lp];
len++;
if (1.0 * sum / len > lcur) {
lcur = 1.0 * sum / len;
llp = lp;
}
lp -= 1;
}
sum = 0, len = 0;
while (rp <= n) {
sum += a[rp];
len++;
if (1.0 * sum / len > rcur) {
rcur = 1.0 * sum / len;
rrp = rp;
}
rp += 1;
}
auto getavl = [&](ll r, ll l) {
return 1.0 * (pre[r] - pre[l - 1]) / (r - l + 1);
};
ld ans = max(getavl(rrp, pi - 2), getavl(pi + 1, llp));
ans = max(ans, getavl(rrp, llp));
cout << fixed << setprecision(12) << ans << '\n';
}
void init() {
// init_primes();
}
/*
TC4:
0 6 7
8 7 8
9 8 9
*/
int main(void) {
ios::sync_with_stdio(false);
cin.tie(0);
init();
int _t = 1;
cin >> _t;
cin.get();
while (_t--)
solve();
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 6004kb
input:
2 4 8 2 7 10 6 9 6 5 3 4 8
output:
6.750000000000 5.833333333333
result:
ok 2 numbers
Test #2:
score: 0
Accepted
time: 65ms
memory: 4040kb
input:
100000 3 948511478 739365502 813471668 3 881046825 27458122 398507422 3 987554257 399092415 924260278 3 984128569 125199021 716360525 3 529589236 45783262 313507287 3 645443456 85994112 226010681 3 914820717 228360911 572267310 3 418958362 56703604 195276041 3 64461646 26764720 26995581 3 914535039 ...
output:
833782882.666666626930 435670789.666666686535 770302316.666666626930 608562705.000000000000 296293261.666666686535 319149416.333333313465 571816312.666666626930 223646002.333333343267 39407315.666666664183 383253737.666666686535 734363638.666666626930 779975824.333333373070 490276408.333333313465 57...
result:
ok 100000 numbers
Test #3:
score: -100
Wrong Answer
time: 21ms
memory: 3824kb
input:
10000 4 194123849 79274911 191162487 570110764 86 957917218 915359202 914726017 873273226 867724859 867674150 809652204 805531383 745262007 743835491 727071232 714782071 645394643 639432679 594879540 587173904 583418126 560538589 518721836 469558994 427721766 411582333 404948350 402948978 357228675 ...
output:
258668002.750000000000 516690462.304347813129 495489050.352941155434 513362357.463414609432 472025965.699999988079 546154003.125000000000 543366581.516129016876 254833443.199999988079 413627296.285714268684 502458665.384615361691 564217787.333333373070 479468115.118279576302 466246020.204545438290 5...
result:
wrong answer 2nd numbers differ - expected: '527118856.7555556', found: '516690462.3043478', error = '0.0197838'