Submission #684784

#TimeUsernameProblemLanguageResultExecution timeMemory
684784US3RN4M3Self Study (JOI22_ho_t2)C++17
100 / 100
456 ms11500 KiB
#include<bits/stdc++.h> using namespace std; using ll = long long; ll n, m; vector<ll> A; vector<ll> B; bool test(ll goal) { ll avail = 0; for(ll i = 0; i < n; i++) { ll used = (goal - 1)/A[i] + 1; if(used <= m) { avail += m - used; continue; } ll left = goal - A[i]*m; ll req = (left - 1)/B[i] + 1; avail -= req; if(avail < -n*m) return false; } return (avail >= 0); } main() { cin >> n >> m; A.resize(n); B.resize(n); for(ll & i : A) cin >> i; for(ll & i : B) cin >> i; for(int i = 0; i < n; i++) A[i] = max(A[i], B[i]); ll ans = 0; for(ll delta = (1ll<<60); delta >= 1; delta >>= 1) { if(test(ans + delta)) ans += delta; } //ll ans2 = 1e18; //for(ll i = 0; i < n; i++) ans2 = min(ans2, max(A[i], B[i])); //if(m == 1 && ans2 != ans) assert(ans2 > ans); cout << ans << endl; }

Compilation message (stderr)

Main.cpp:22:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   22 | main() {
      | ^~~~
#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...