Submission #19122

#TimeUsernameProblemLanguageResultExecution timeMemory
19122eaststarBe Two Bees (OJUZ10_b2b)C++14
11 / 100
61 ms2644 KiB
#include <stdio.h>
int n,ai,aj;
long long h[100010],t[100010],H;
int f(double m){
    int i,mi,mj;
    double s,m1=0,m2=0;
    for(i=1;i<=n;++i){
        s=h[i]+m/t[i];
        if(m1<s)m2=m1,mj=mi,m1=s,mi=i;
        else if(m2<s)m2=s,mj=i;
    }
    if(m1+m2>=H)ai=mi,aj=mj;
    return m1+m2>=H;
}
int main(){
    int i;
    scanf("%d",&n);
    for(i=1;i<=n;++i)scanf("%lld",h+i),H+=h[i];
    for(i=1;i<=n;++i)scanf("%lld",t+i);
    double l=0,r=1e10,m;
    while((r-l)/r>1e-8){
        m=(l+r)/2;
        if(f(m))r=(H-h[ai]-h[aj])/(1.0/t[ai]+1.0/t[aj]);
        else l=m;
    }
    if(ai>aj)ai^=aj^=ai^=aj;
    printf("%d %d",ai,aj);
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...