제출 #815141

#제출 시각아이디문제언어결과실행 시간메모리
815141MohamedAhmed04Self Study (JOI22_ho_t2)C++14
62 / 100
145 ms9112 KiB
#include <bits/stdc++.h>

using namespace std ;

const int MAX = 3e5 + 10 ;

int a[MAX] , b[MAX] ;
int n , m ;

bool check(long long x)
{
	long long cnt = 0 ;
	for(int i = 0 ; i < n ; ++i)
	{
		if(1ll * m * a[i] >= x)
			cnt += m - (x + a[i] - 1ll) / a[i] ;
		else
			cnt -= (x - 1ll * m * a[i] + b[i] - 1ll) / b[i] ;
		cnt = max(cnt , (long long)(-1ll * 1e18)) ; 
	}
	return (cnt >= 0) ;
}

int main()
{
	ios_base::sync_with_stdio(0) ;
	cin.tie(0) ;
	cin>>n>>m ;
	for(int i = 0 ; i < n ; ++i)
		cin>>a[i] ;
	for(int i = 0 ; i < n ; ++i)
		cin>>b[i] ;
	for(int i = 0 ; i < n ; ++i)
		a[i] = max(a[i] , b[i]) ;
	long long l = 0 , r = 1e15 ;
	long long ans = l ;
	while(l <= r)
	{
		long long mid = (l + r) >> 1ll ;
		if(check(mid))
			ans = mid , l = mid+1ll ;
		else
			r = mid-1ll ;
	}
	return cout<<ans<<"\n" , 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...
#Verdict Execution timeMemoryGrader output
Fetching results...