QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#696877 | #8242. V-Diagram | Kopicy | AC ✓ | 154ms | 12468kb | C++23 | 1.4kb | 2024-11-01 04:44:21 | 2024-11-01 04:44:21 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define rep(i, a, b) for(int i=(a);i<=(b);++i)
#define sz(x) (int)x.size()
#define endl "\n"
const int N = 2e5, mod = 1e9 + 7, inf = 1e18;
void solve() {
int n;
cin>>n;
vector<int> a(n+5);
rep(i,1,n) cin>>a[i];
vector<int> pre(n+5);
rep(i,1,n) pre[i]=pre[i-1]+a[i];
vector<int> f(n+1),g(n+1);
#define db long double
auto chk=[&](db x){
for(int i=1;i<=n;){
if(a[i+1]==a[i]){
i++;
continue;
}
int lo=i+1;
while(lo<=n && a[lo]<a[lo-1]) lo++;
int ro=lo;int lb=lo-1;
db mx=-inf;
while(ro<=n && a[ro]>a[ro-1]){
mx=max(1.0*pre[ro]-x*ro,mx);
ro++;
}
if(ro-i<3){
i=ro;
continue;
}
for(int j=i;j<lb;j++){
db ans2=pre[j-1]-(j-1)*x;
if(ans2<=mx) return true;
}
i=ro;
}
return false;
};
db lo=0,ro=1e9;
while((ro-lo)>1e-9){
db mid=(lo+ro)/2.0;
if(chk(mid)) lo=mid;
else ro=mid;
}
cout<<setprecision(10)<<lo<<endl;
}
signed main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int64_t tt = 1;
cin >> tt;
rep(kase, 1, tt) solve();
}
这程序好像有点Bug,我给组数据试试?
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 3776kb
input:
2 4 8 2 7 10 6 9 6 5 3 4 8
output:
6.75 5.833333333
result:
ok 2 numbers
Test #2:
score: 0
Accepted
time: 154ms
memory: 3876kb
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.7 435670789.7 770302316.7 608562705 296293261.7 319149416.3 571816312.7 223646002.3 39407315.67 383253737.7 734363638.7 779975824.3 490276408.3 574448414 337980292 654961203.7 583384189.3 613875639.3 761460882.7 542680751 452235939.3 473531399.7 531187431.3 300229960.7 474795711 693833002....
result:
ok 100000 numbers
Test #3:
score: 0
Accepted
time: 63ms
memory: 3812kb
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.7 527118856.8 495489050.4 525232841.1 472025965.7 546154003.1 543366581.5 254833443.2 428466450 502458665.4 564217787.3 479468115.1 466246020.2 570997279.7 537648134.3 787549533.3 454304797.8 500070263.7 462856593.2 495278467.2 410227633.8 573418994.8 527111654.1 612231848.8 434217186.3 52...
result:
ok 10000 numbers
Test #4:
score: 0
Accepted
time: 56ms
memory: 4000kb
input:
1000 357 999039850 998470288 997001139 994662646 991895879 986310400 986201443 971759917 969292691 967648767 963962459 963603069 959189978 954532156 936459732 927268934 925199105 918559276 906725073 903024522 891346023 886340039 872105565 871168803 867996002 862017068 851751458 849013653 847967471 8...
output:
493655540.6 515292672.4 498032100 481127839.6 526924843.3 488725771.5 533287305.9 438471966.3 536630212.3 560617979.7 489475479 484316845.4 535619161.4 557358012.7 550404574.1 509656726.4 519071525.6 498462136.3 513777340.2 486370140.5 515384691.1 539657713.1 540521098.5 487266753.2 505332677.4 5053...
result:
ok 1000 numbers
Test #5:
score: 0
Accepted
time: 56ms
memory: 4008kb
input:
100 1152 999672457 998726401 995956848 990786177 990411263 984766135 983346495 982593760 982250360 980153123 975942408 974567443 973232196 970303426 967381747 966555245 966400114 965308448 961378668 960953166 960451796 957742285 957273419 956986267 956737190 956352393 954265694 953272327 952096100 9...
output:
504372755 495156421.2 511090599.6 497554816.1 514036973.3 509664056.9 500937805 515638734.5 500934821.1 518390767.7 504669527 501996849.1 504619908.6 505603904.4 500109676.7 506063795.7 507017926.5 491842920.5 504983155.8 503515866.2 513405973 508447985.4 524128135.8 506432939.6 506094918.7 46403041...
result:
ok 100 numbers
Test #6:
score: 0
Accepted
time: 56ms
memory: 7396kb
input:
10 29043 999960631 999958134 999901247 999737433 999520614 999519045 999460207 999379140 999279078 999214335 999048733 998866618 998693991 998649435 998636721 998575997 998542938 998513617 998477418 998422985 998403836 998262102 998124856 998017139 998013085 997959891 997944356 997893923 997524695 9...
output:
497704976 500149119.6 499456770.2 500288732.7 505548409.8 502546060.7 500560614.2 502706676.4 500677023.5 505195095
result:
ok 10 numbers
Test #7:
score: 0
Accepted
time: 52ms
memory: 12468kb
input:
1 300000 999995409 999991717 999988340 999981078 999978323 999978096 999977575 999967796 999958049 999950023 999927083 999923421 999918905 999916153 999912740 999911175 999907902 999902376 999899096 999889548 999888902 999880881 999878324 999867494 999866296 999864006 999863565 999859765 999841183 9...
output:
499603654.4
result:
ok found '499603654.399999976', expected '499603654.397238612', error '0.000000000'
Extra Test:
score: 0
Extra Test Passed