Submission #1320000

#TimeUsernameProblemLanguageResultExecution timeMemory
1320000ghos007Self Study (JOI22_ho_t2)C++20
0 / 100
136 ms5120 KiB
//#define _GLIBCXX_DEBUG #include <bits/stdc++.h> #define int long long using namespace std; const int INF = 1e18; const int mod = 1e9+7; bool check(vector <int> &A,vector <int> &B,int mid,int m) { int balance = 0; for (int i = 0; i < A.size(); i++) { int need_time = (mid + A[i] - 1) / A[i]; if (m >= need_time) { balance += (m - need_time); }else { int ost = mid - A[i] * m; balance -= (ost + B[i] - 1) / B[i]; } } return balance >= 0; } signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int n,m; cin >> n >> m; vector <int> A(n),B(n); for (int i = 0;i < n;i++) { cin >> A[i]; } int res = INF; for (int i = 0;i < n;i++) { cin >> B[i]; A[i] = max(A[i],B[i]); res = min(res,A[i]); } int l = 0,r = 1e18 + 1; while (r-l>1) { int mid = l + (r-l)/2; if (check(A,B,mid,m)) { l = mid; }else { r = mid; } } if (res > l)abort(); cout << l << "\n"; }
#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...