Submission #1161689

#TimeUsernameProblemLanguageResultExecution timeMemory
1161689apelpisiaSelf Study (JOI22_ho_t2)C++20
100 / 100
122 ms5204 KiB
#include <bits/stdc++.h> #define pb push_back #define f first #define s second using namespace std; typedef long long ll; typedef pair<ll, ll> pll; typedef pair<int, int> ii; const ll INF = 2e18; const ll nx = 300005; ll n, m, a[nx], b[nx], l, r, md; bool check(){ ll minaction = 0; for(int i=0; i<n; i++){ if(a[i]<=b[i]) minaction+=(md/b[i] + (md%b[i] ? 1 : 0)); else if(md<=a[i]*m) minaction+=(md/a[i] + (md%a[i] ? 1 : 0)); else{ minaction+=m; ll temp = md-m*a[i]; minaction+=(temp/b[i] + (temp%b[i] ? 1 : 0)); } if(minaction>n*m) return false; } return true; } int main(int argc, char **argv){ cin.tie(NULL)->sync_with_stdio(false); cin >> n >> m; for(int i=0; i<n; i++) cin >> a[i]; for(int i=0; i<n; i++) cin >> b[i]; l = 0, r = INF; while(l<r){ md = (l+r)/2; if(check()){ l = md+1; } else r = md; } cout << l-1; return 0; }
#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...