Submission #1157044

#TimeUsernameProblemLanguageResultExecution timeMemory
1157044dostsSelf Study (JOI22_ho_t2)C++20
100 / 100
145 ms4936 KiB
#include <bits/stdc++.h> #pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx2") using namespace std; #define int long long #define pii pair<int,int> #define ff first #define ss second #define sp << " " << #define all(cont) cont.begin(),cont.end() #define vi vector<int> const int inf = 2e18,N = 5e5+1,MOD = 998244353; void solve() { int n,m; cin >> n >> m; vi a(n+1),b(n+1); for (int i=1;i<=n;i++) cin >> a[i]; for (int i=1;i<=n;i++) cin >> b[i]; for (int i=1;i<=n;i++) a[i] = max(a[i],b[i]); auto check = [&](int x) -> bool { int tot = 0; for (int i=1;i<=n;i++) { int need = min(n*m-tot,min(m,(x+a[i]-1)/a[i])); tot+=need; tot+=max(0ll,(x-need*a[i]+b[i]-1))/b[i]; if (tot > n*m) return false; } return true; }; int l = 0; int r = inf; while (l<=r) { int x = (l+r) >> 1; if (check(x)) l = x+1; else r = x-1; } cout << r << '\n'; } int32_t main() { ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); #ifdef Dodi freopen("in.txt","r",stdin); freopen("out.txt","w",stdout); #endif int t = 1; //cin >> t; while (t --> 0) solve(); }
#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...