제출 #14352

#제출 시각아이디문제언어결과실행 시간메모리
14352cometBe Two Bees (OJUZ10_b2b)C++98
100 / 100
167 ms3456 KiB
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int n;
ll sum;
int H[111111],T[111111];
double a[111111];
bool check(double k){
    for(int i=0;i<n;i++)a[i]=H[i]+k/T[i];
    double ret=0;
    double* t=max_element(a,a+n);
    ret+=*t;
    *t=-1e18;
    t=max_element(a,a+n);
    ret+=*t;
    return ret>sum;
}
void output(double k){
    for(int i=0;i<n;i++)a[i]=H[i]+k/T[i];
    int v,v2;
    double* t=max_element(a,a+n);
    v=t-a+1;
    *t=-1e18;
    t=max_element(a,a+n);
    v2=t-a+1;
    printf("%d %d",min(v,v2),max(v,v2));
}
int main(){
    scanf("%d",&n);
    int x,y,z;
    for(int i=0;i<n;i++){
		scanf("%d",&H[i]);
		sum+=H[i];
    }
    for(int i=0;i<n;i++){
        scanf("%d",&T[i]);
    }
    double lo=0,hi=1e15,mid;
    for(int i=0;i<100;i++){
        mid=(lo+hi)/2;
        if(check(mid)){
            hi=mid;
        }
        else{
            lo=mid;
        }
        //printf("%f %f\n",hi,lo);
    }
    output(hi);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...