Submission #19124

#TimeUsernameProblemLanguageResultExecution timeMemory
19124eaststarBe Two Bees (OJUZ10_b2b)C++14
11 / 100
63 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)){ double x=H-h[ai]-h[aj],y=1.0/t[ai]+1.0/t[aj]; r=x/y; } 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...