QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#216606 | #5125. Adjusted Average | MovingUp# | AC ✓ | 549ms | 56476kb | C++14 | 1.8kb | 2023-10-15 20:28:58 | 2023-10-15 20:28:59 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
double inf = 1e18;
const int Nmax = 1e5 + 5;
int a[Nmax];
int n, k, i;
double avg, target_sum, ans = inf, sum = 0;
double get_close(double target, int k)
{
// return min abs diff between target and a sum that can be obtained by exactly k numbers
if(k == 0) return abs(target);
if(k == 1)
{
double ans = inf;
for(int i=1; i<=n; ++i)
ans = min(ans, abs(a[i] - target));
return ans;
}
set<double> S;
double ans = inf;
for(int i=1; i<=n; ++i)
{
if(k == 2)
{
S.insert(0);
}
else if(k == 3)
{
if(i>1)
S.insert(a[i-1]);
}
else
{
assert(k == 4);
for(int j=1; j<i-1; ++j)
S.insert(a[i-1] + a[j]);
}
for(int j=i+1; j<=n; ++j)
{
double need = target - a[i] - a[j];
auto it = S.lower_bound(need);
if(it != S.end())
ans = min(ans, *it - need);
if(it != S.begin())
{
--it;
ans = min(ans, need - *it);
}
}
}
return ans;
}
int main()
{
// freopen("input", "r", stdin);
cin.tie(0); cin.sync_with_stdio(false);
cin >> n >> k >> avg;
for(i=1; i<=n; ++i)
{
cin >> a[i];
sum += a[i];
}
for(i=0; i<=k; ++i)
{
target_sum = sum - (n-i) * avg;
auto min_abs_diff = get_close(target_sum, i);
ans = min(ans, min_abs_diff / (n-i));
}
cout << setprecision(6) << fixed;
cout << ans << '\n';
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3908kb
input:
5 2 2 1 2 3 100 200
output:
0.000000
result:
ok found '0.00000', expected '0.00000', error '-0.00000'
Test #2:
score: 0
Accepted
time: 0ms
memory: 3768kb
input:
5 4 -5 -6 -3 0 6 3
output:
0.500000
result:
ok found '0.50000', expected '0.50000', error '0.00000'
Test #3:
score: 0
Accepted
time: 0ms
memory: 3784kb
input:
4 1 4 1 3 3 7
output:
0.333333
result:
ok found '0.33333', expected '0.33333', error '0.00000'
Test #4:
score: 0
Accepted
time: 0ms
memory: 3788kb
input:
2 1 0 0 0
output:
0.000000
result:
ok found '0.00000', expected '0.00000', error '-0.00000'
Test #5:
score: 0
Accepted
time: 0ms
memory: 3872kb
input:
2 1 1 2 3
output:
1.000000
result:
ok found '1.00000', expected '1.00000', error '0.00000'
Test #6:
score: 0
Accepted
time: 0ms
memory: 3872kb
input:
4 1 0 -2 -1 1 2
output:
0.000000
result:
ok found '0.00000', expected '0.00000', error '-0.00000'
Test #7:
score: 0
Accepted
time: 0ms
memory: 3768kb
input:
5 2 0 -1 2 3 -4 42
output:
0.000000
result:
ok found '0.00000', expected '0.00000', error '-0.00000'
Test #8:
score: 0
Accepted
time: 0ms
memory: 3776kb
input:
6 2 0 -5 -1 1 3 3 5
output:
0.000000
result:
ok found '0.00000', expected '0.00000', error '-0.00000'
Test #9:
score: 0
Accepted
time: 0ms
memory: 3888kb
input:
5 4 -1000000000 1000000000 1000000000 1000000000 1000000000 1000000000
output:
2000000000.000000
result:
ok found '2000000000.00000', expected '2000000000.00000', error '0.00000'
Test #10:
score: 0
Accepted
time: 0ms
memory: 3788kb
input:
5 4 1000000000 -1000000000 -1000000000 -1000000000 -1000000000 -1000000000
output:
2000000000.000000
result:
ok found '2000000000.00000', expected '2000000000.00000', error '0.00000'
Test #11:
score: 0
Accepted
time: 0ms
memory: 3840kb
input:
5 1 0 -16 -12 4 12 20
output:
1.000000
result:
ok found '1.00000', expected '1.00000', error '0.00000'
Test #12:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
8 2 0 -18 -6 -6 0 0 24 36 42
output:
1.000000
result:
ok found '1.00000', expected '1.00000', error '0.00000'
Test #13:
score: 0
Accepted
time: 0ms
memory: 3896kb
input:
5 1 0 10000 -10 -100 -1000 -3900
output:
998.000000
result:
ok found '998.00000', expected '998.00000', error '0.00000'
Test #14:
score: 0
Accepted
time: 0ms
memory: 3900kb
input:
15 3 1 -3 3 0 -3 3 2 0 3 -1 -1 0 -3 1 -1 -2
output:
0.416667
result:
ok found '0.41667', expected '0.41667', error '0.00000'
Test #15:
score: 0
Accepted
time: 0ms
memory: 3836kb
input:
6 1 0 -1 -1 -1 1 1 1
output:
0.000000
result:
ok found '0.00000', expected '0.00000', error '-0.00000'
Test #16:
score: 0
Accepted
time: 0ms
memory: 3836kb
input:
8 1 80 -90 52 -98 -79 70 86 38 -77
output:
80.000000
result:
ok found '80.00000', expected '80.00000', error '0.00000'
Test #17:
score: 0
Accepted
time: 0ms
memory: 3792kb
input:
5 3 37 3 72 88 23 -51
output:
0.500000
result:
ok found '0.50000', expected '0.50000', error '0.00000'
Test #18:
score: 0
Accepted
time: 0ms
memory: 4000kb
input:
8 3 -50 -68 -98 34 55 -9 83 -64 -45
output:
1.800000
result:
ok found '1.80000', expected '1.80000', error '0.00000'
Test #19:
score: 0
Accepted
time: 0ms
memory: 3932kb
input:
5 2 62 -21 82 9 65 94
output:
0.333333
result:
ok found '0.33333', expected '0.33333', error '0.00000'
Test #20:
score: 0
Accepted
time: 0ms
memory: 4008kb
input:
10 4 -16 57 60 25 -60 -31 -70 25 -45 -8 -93
output:
0.000000
result:
ok found '0.00000', expected '0.00000', error '-0.00000'
Test #21:
score: 0
Accepted
time: 188ms
memory: 27208kb
input:
1000 4 -589682264 239898913 202060748 -888127376 -880309095 124799170 -494539478 -745680608 726341697 992941811 -992809843 -977069412 -627162219 -243367314 325137914 647494705 994977955 32926705 618107495 702088915 19011397 546487463 811676912 -599600278 178857199 475002521 -328010873 568834738 -650...
output:
597654934.967871
result:
ok found '597654934.96787', expected '597654934.96787', error '0.00000'
Test #22:
score: 0
Accepted
time: 183ms
memory: 27084kb
input:
1000 4 -520031192 -828928297 -939974056 -890063527 -821483207 202331771 452507962 -984471175 730065137 -788464067 -814085288 -308486435 -251817293 982579015 -779352535 417038541 664276772 822475842 509497915 -536596860 616913996 358016799 -839048180 358771449 -538531644 562815966 635875550 337992251...
output:
558582928.137550
result:
ok found '558582928.13755', expected '558582928.13755', error '0.00000'
Test #23:
score: 0
Accepted
time: 0ms
memory: 3836kb
input:
5 3 78 -68 42 -52 42 50
output:
32.000000
result:
ok found '32.00000', expected '32.00000', error '0.00000'
Test #24:
score: 0
Accepted
time: 0ms
memory: 3764kb
input:
5 4 0 11 7 -13 -3 -6
output:
0.250000
result:
ok found '0.25000', expected '0.25000', error '0.00000'
Test #25:
score: 0
Accepted
time: 0ms
memory: 3832kb
input:
6 4 50483269 -812901056 614642221 945836657 -616198107 598529790 -614398526
output:
15984531.500000
result:
ok found '15984531.50000', expected '15984531.50000', error '0.00000'
Test #26:
score: 0
Accepted
time: 0ms
memory: 3768kb
input:
5 4 4 8 20 -18 3 9
output:
0.333333
result:
ok found '0.33333', expected '0.33333', error '0.00000'
Test #27:
score: 0
Accepted
time: 0ms
memory: 3876kb
input:
10 4 -472189650 -763683851 291512773 236754835 367611187 -650471393 -435169974 -783816043 -891608557 997972439 910540713
output:
36488132.500000
result:
ok found '36488132.50000', expected '36488132.50000', error '0.00000'
Test #28:
score: 0
Accepted
time: 0ms
memory: 3840kb
input:
6 4 -286216652 -146841360 -702906210 328658776 -159898481 154871206 -736124545
output:
2794288.000000
result:
ok found '2794288.00000', expected '2794288.00000', error '0.00000'
Test #29:
score: 0
Accepted
time: 6ms
memory: 4004kb
input:
1500 3 1 -3 -1 3 -1 1 -3 0 -2 -2 1 0 0 2 1 2 0 -2 -3 0 3 3 1 -2 0 1 2 0 0 -1 3 1 2 -1 0 -3 0 0 -2 -1 -3 2 3 0 0 3 -3 -3 -3 0 -3 0 2 -2 -2 3 -1 2 3 1 -2 -1 -2 -1 0 0 -2 2 2 2 -2 2 -1 3 -2 2 -3 -3 2 -2 3 -2 -1 2 -1 1 1 0 0 3 -3 3 -2 -2 -3 3 0 0 -3 2 -1 -2 1 2 0 0 3 0 1 3 2 -1 3 -1 1 -3 1 -2 1 -1 3 2 0...
output:
0.971944
result:
ok found '0.97194', expected '0.97194', error '0.00000'
Test #30:
score: 0
Accepted
time: 18ms
memory: 3876kb
input:
1000 4 0 -5 3 4 4 2 -2 -1 -3 -4 -1 2 -2 1 -3 4 0 -1 -5 -2 2 2 4 -2 -1 -2 -1 -2 -4 1 -1 3 -4 2 -1 -3 2 5 2 -1 -1 -1 -2 5 -5 0 -1 -4 3 5 0 3 2 -4 5 -3 -2 5 -1 -1 -3 -3 2 2 3 -3 1 5 2 -4 4 1 5 -5 -4 5 -2 -4 2 -4 1 0 -5 1 -4 1 1 -2 -4 5 4 -2 -4 1 -4 -5 3 -1 5 -4 -4 -5 -1 -2 -2 -1 -2 -5 2 5 3 -4 -1 1 3 5...
output:
0.009036
result:
ok found '0.00904', expected '0.00904', error '0.00000'
Test #31:
score: 0
Accepted
time: 0ms
memory: 3832kb
input:
10 4 -652315249 248814082 -310330977 -7639307 -808957195 -937992709 -461255220 526406959 317472565 958347317 -387890815
output:
166637545.166667
result:
ok found '166637545.16667', expected '166637545.16667', error '0.00000'
Test #32:
score: 0
Accepted
time: 0ms
memory: 3876kb
input:
6 4 802938834 279940040 -341612005 -603412852 781046065 -36716272 116954057
output:
272445781.500000
result:
ok found '272445781.50000', expected '272445781.50000', error '0.00000'
Test #33:
score: 0
Accepted
time: 0ms
memory: 3844kb
input:
20 4 221873446 849467103 884117952 312351432 -736878277 -296631326 -653303218 924111525 705904846 927004812 -810297249 860376579 744928549 -85282366 -877593960 698190037 840265628 -392839463 828364237 -422208014 198779260
output:
17181.166667
result:
ok found '17181.16667', expected '17181.16667', error '0.00000'
Test #34:
score: 0
Accepted
time: 0ms
memory: 3780kb
input:
15 4 275628638 -847206183 782559411 141146580 425437384 810109824 -265811904 668678866 900016918 -401762002 358260741 574537650 -352457220 -504612680 418460859 909853096
output:
125105.000000
result:
ok found '125105.00000', expected '125105.00000', error '0.00000'
Test #35:
score: 0
Accepted
time: 549ms
memory: 56476kb
input:
1500 4 -196602262 182496385 408694457 -222624009 214805955 -162557649 975365037 991056372 -575198924 720929271 558986749 384198211 379596031 569475572 855820636 -211385054 -369267874 -628871496 -385283148 87771320 470431396 855795002 -140541095 309235940 445547104 -148900802 -201853913 97844726 1545...
output:
188924087.612299
result:
ok found '188924087.61230', expected '188924087.61230', error '0.00000'
Test #36:
score: 0
Accepted
time: 536ms
memory: 56332kb
input:
1500 4 -758396603 -319345413 -730907113 -450973444 -109298520 585578419 -421003783 50740431 195234867 -362795494 -576401840 185218667 -930428757 -984662611 115977237 -346656567 -953312444 621728277 -431334687 -802216908 -245752212 571253732 53024151 417955390 -912781318 -456601409 -1114596 -97580521...
output:
751982161.703877
result:
ok found '751982161.70388', expected '751982161.70388', error '0.00000'