Submission #1282618

#TimeUsernameProblemLanguageResultExecution timeMemory
1282618thirdSelf Study (JOI22_ho_t2)C++20
100 / 100
97 ms5272 KiB
#include<bits/stdc++.h>
typedef long long ll;
#define pii pair<ll, ll>
#define fi first
#define se second
#define endl '\n'
#define TASK ""
#define N 300005
#define LOG 17
using namespace std;

bool ghuy4g;

ll n, a[N], b[N], m;

bool check(ll mid) {
	// trong M tiet
	unsigned long long sum_thieu = 0, sum_thua = 0;
	for (int i = 1; i <= n; i ++) {
		if (max(a[i], b[i]) * m >= mid) {
			ll need = (mid - 1) / max(a[i], b[i]) + 1;
			sum_thua += m - need;
		}
		else {
			ll thieu = mid - max(a[i], b[i]) * m;
			ll need = (thieu - 1) / b[i] + 1;
			sum_thieu += need;
		}
	}
	if (sum_thieu > sum_thua) return 0;
	return 1;
}

bool klinh;

signed main() {
   // freopen("test.inp", "r", stdin);
	//freopen("test.out", "w", stdout);
	//srand(time(0));
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    
    cin >> n >> m;
    for (int i = 1; i <= n; i ++) {
    	cin >> a[i];
    }
    for (int i = 1; i <= n; i ++) {
    	cin >> b[i];
    }
    
    ll l = 1, r = 1e18, ans = -1;
    while (l <= r) {
    	ll mid = (l + r) / 2;
    	if (check(mid)) {
    		ans = mid;
    		l = mid + 1;
    	}
    	else {
    		r = mid - 1;
    	}
    }
    
    cout << ans;
   	
   	cerr << fabs(&klinh - &ghuy4g) / double(1024 * 1024);
}
#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...