제출 #1360781

#제출 시각아이디문제언어결과실행 시간메모리
1360781ezzzayBurgers (NOI23_burgers)C++20
26 / 100
42 ms1560 KiB
#include<bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
const int N=3e5+5;
int x[N],a[N],b[N];
int n;
int check(int mid){
	int mx=1e9;
	for(int i=1;i<=n;i++){
		int p= (x[i]-mid*a[i]) / b[i];
		mx=min(mx,p);
	}
	return mx;
}
signed main(){
	cin>>n;
	int lo=0,hi=1e9;
	for(int i=1;i<=n;i++)cin>>x[i];
	for(int i=1;i<=n;i++){
		cin>>a[i];
		hi=min(hi,x[i]/a[i]);
	}
	for(int i=1;i<=n;i++)cin>>b[i];
	while(hi>=lo){
		int mid=(hi+lo)/2;
		// // urd tlasa ih l baival hoishloy gsn sanaa
		
		if(check(mid)>= check(mid-1)){
			lo=mid+1;
		}
		else{
			hi=mid-1;
		}
	}
	int ans=0;
	for(int i=-10;i<=10;i++){
		int h=lo+i;
		if(h<0)continue;
		int cnt=1e9;
		for(int j=1;j<=n;j++){
			if(h*a[j]>x[j]){
				cnt=-1e9;
				break;
			}
			cnt=min(cnt, (x[j]-h*a[j])/b[j]);
		}
		ans=max(ans,cnt+h);
	}
	cout<<ans;
	
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…