Submission #14317

#TimeUsernameProblemLanguageResultExecution timeMemory
14317cometBe Two Bees (OJUZ10_b2b)C++98
0 / 100
1000 ms4324 KiB
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,H[111111],T[111111],sum;
double a[111111];
bool check(double k){
	for(int i=0;i<n;i++)a[i]=(double)H[i]+k*T[i];
	sort(a,a+n);
	double ret=0;
	for(int i=2;i<n;i++)ret+=a[i];
	//printf("%f : %f\n",ret,k*sum);
	return ret>=k*sum;
}
void output(double k){
	double Min=1e9;
	int v,v2;
	for(int i=0;i<n;i++)a[i]=H[i]+k*T[i];
	for(int i=0;i<n;i++){
		if(Min>a[i]){
			Min=a[i];
			v=i;
		}
	}
	Min=1e9;
	for(int i=0;i<n;i++){
		if(Min>a[i]&&i!=v){
			Min=a[i];
			v2=i;
		}
	}
	printf("%d %d\n",v+1,v2+1);
}
int main(){
	scanf("%lld",&n);
	int x,y,z;
	for(int i=0;i<n;i++)scanf("%lld",&H[i]);
	for(int i=0;i<n;i++){
		scanf("%lld",&T[i]);
		sum+=T[i];
	}
	double lo=0,hi=1e9,mid;
	for(int i=0;i<100;i++){
		mid=(lo+hi)/2;
		if(check(mid)){
			lo=mid;
		}
		else{
			hi=mid;
		}
		//printf("%f %f\n",lo,hi);
	}
	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...