Submission #651864

#TimeUsernameProblemLanguageResultExecution timeMemory
651864beaconmcSelf Study (JOI22_ho_t2)C++11
0 / 100
418 ms14324 KiB
#include <bits/stdc++.h>

typedef long long ll;

using namespace std;


#define FOR(i, x, y) for(ll i=x; i<y; i++)
#define FORNEG(i, x, y) for(ll i=x; i>y; i--)


#define fast() ios_base::sync_with_stdio(false);cin.tie(NULL)

ll n,m;
vector<ll> lis;
vector<ll> lis2;

bool check(ll a){
	ll cnt = 0;


	FOR(i,0,n){
		if (lis[i] > lis2[i]){
			if (a>lis[i]*m){
				cnt += (a-(lis[i]*m)-1)/(lis2[i]) +1 + m;
			}else{
				cnt += (a-1)/(lis[i]) + 1;
			}
		}else{
			cnt += (a-1)/(lis2[i]) + 1;
		}
	}


	if (cnt <= n*m){
		return true;
	}return false;
}

int main(){
	cin >> n >> m;
	FOR(i,0,n){
		ll temp; cin >> temp;
		lis.push_back(temp);
	}
	FOR(i,0,n){
		ll temp; cin >> temp;
		lis2.push_back(temp);
	}


	ll lo = 0;
	ll hi = 1000000000000000000;

	while (lo<hi){
		ll mid = (lo+hi+1)/2;
		if (check(mid)){
			lo = mid;
		}else{
			hi = mid - 1;
		}
	}
	cout << lo;
}
#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...