Submission #954029

#TimeUsernameProblemLanguageResultExecution timeMemory
954029manishjha91Self Study (JOI22_ho_t2)C++17
0 / 100
238 ms19456 KiB
#include<bits/stdc++.h> using namespace std; using ll = long long; using ull = unsigned long long; using lld = long double; // #ifndef ONLINE_JUDGE // #include "E:\Personal\cpp_codes\debugalgo.h" // #else // #define debug(x) // #endif void solve(int tc) { ll n,m; cin>>n>>m; vector<pair<ll,ll>> a(n); for(int i=0; i<n; i++) { cin>>a[i].first; } for(int i=0; i<n; i++) cin>>a[i].second; vector<pair<ll,ll>> largerA; vector<ll> largerB; for(int i=0; i<n; i++) { if(a[i].first>a[i].second) { largerA.push_back(a[i]); } else { largerB.push_back(a[i].second); } } sort(largerA.rbegin(),largerA.rend()); sort(largerB.rbegin(),largerB.rend()); // debug(largerA); // debug(largerB); auto feasible = [&](ll mid) { ll carry = 0; for(auto &x: largerB) { ll need = (mid + x-1)/x; carry += (m-need); } for(auto &[x,y]: largerA) { ll xval = x*m; if(xval>=mid) { carry+= (m - (mid+x-1)/x); } else { ll need = (mid - x*m + y - 1)/y; carry -= need; } } return carry>=0; }; ll l = 0; ll r = 1e16; ll ans = 0; while(l<=r) { ll mid = l + (r-l)/2; if(feasible(mid)) { ans = mid; l = mid + 1; } else r = mid - 1; } cout<<ans<<"\n"; } int main() { ios_base:: sync_with_stdio(0); cin.tie(0); // #ifndef ONLINE_JUDGE // freopen("Error.txt", "w", stderr); // #endif int tt = 1; // cin >> tt; for(int tc=1; tc<=tt; tc++) { solve(tc); } }
#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...