Submission #15756

#TimeUsernameProblemLanguageResultExecution timeMemory
15756cki86201Be Two Bees (OJUZ10_b2b)C++98
100 / 100
108 ms1864 KiB
#include<stdio.h> #include<algorithm> #include<set> #include<vector> using namespace std; typedef long long ll; typedef pair<int,int> Pi; #define X first #define Y second int N; int T[100010], H[100010]; ll S; int p[2]; bool chk(double x){ double now[2] = {0}, re[2] = {0}; for(int i=0;i<N;i++){ double t = (double)H[i] + x / T[i]; if(now[0] < t)now[1] = now[0], re[1] = re[0], now[0] = t, re[0] = i; else if(now[1] < t)now[1] = t, re[1] = i; } if((double)S - now[0] - now[1] < 0){ p[0] = min(re[0],re[1]) + 1; p[1] = max(re[0],re[1]) + 1; return true; } return false; } int main(){ scanf("%d",&N); for(int i=0;i<N;i++)scanf("%d",H+i), S += H[i]; for(int i=0;i<N;i++)scanf("%d",T+i); double low = 0, high = 1e15; for(int i=0;i<70;i++){ double mid = (low + high) / 2; if(chk(mid))high = mid; else low = mid; } printf("%d %d",p[0],p[1]); 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...