QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#364210#8242. V-Diagramucup-team1525#WA 284ms5920kbC++17974b2024-03-24 13:02:022024-03-24 13:02:03

Judging History

你现在查看的是最新测评结果

  • [2024-03-24 13:02:03]
  • 评测
  • 测评结果:WA
  • 用时:284ms
  • 内存:5920kb
  • [2024-03-24 13:02:02]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
#define double long double
const int N=3e5;
const double eps=1e-9;
int n;
double a[N+5];
double b[N+5];
bool check(double x){
    for(int i=1;i<=n;i++)
        b[i]=b[i-1]+a[i]-x;
    double mx=b[n],mn=0;
    for(int i=2;i<n;i++)
        if(a[i]<a[i-1]&&a[i]<a[i+1]){
            for(int j=1;j<i;j++)
                mn=min(mn,b[j]);
            for(int j=i+1;j<=n;j++)
                mx=max(mx,b[j]);
            // printf("%lf %lf\n",mx,mn);
            if(mx>mn+eps)
                return 1;
            return 0;
        }
    assert(0);
}
void solve(){
    long long ans=0;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
        scanf("%LF",&a[i]);
    double l=0,r=1e9;
    while(r-l>eps){
        double mid=(l+r)/2;
        if(check(mid)) l=mid;
        else r=mid;
    }
    printf("%.13LF\n",l);
}
int main(){
    int t; scanf("%d",&t);
    while(t--) solve();
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 5912kb

input:

2
4
8 2 7 10
6
9 6 5 3 4 8

output:

6.7499999990492
5.8333333328650

result:

ok 2 numbers

Test #2:

score: 0
Accepted
time: 284ms
memory: 5908kb

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.6666666658130
435670789.6666666656092
770302316.6666666662204
608562704.9999999989523
296293261.6666666659294
319149416.3333333323244
571816312.6666666656383
223646002.3333333322662
39407315.6666666655001
383253737.6666666660458
734363638.6666666654637
779975824.3333333321498
490276408.333...

result:

ok 100000 numbers

Test #3:

score: -100
Wrong Answer
time: 138ms
memory: 5920kb

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:

280182720.6666666659876
538557639.9545454542967
495489050.3529411757481
537734928.6410256405943
472025965.6999999994296
546154003.1249999998254
543366581.5161290314281
254833443.1999999989639
447343683.3157894733304
502458665.3846153843333
564217787.3333333323826
479468115.1182795695495
469762036.64...

result:

wrong answer 1st numbers differ - expected: '258668002.7500000', found: '280182720.6666667', error = '0.0831750'