제출 #1154485

#제출 시각아이디문제언어결과실행 시간메모리
1154485tsengangSelf Study (JOI22_ho_t2)C++20
100 / 100
234 ms7456 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ff first
#define ss second
#define all(x) (x).begin(), (x).end()
#define pb push_back
#define ertunt return
const int MOD = 998244353;
#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")
int main() {
    ll n, m;
    cin >> n >> m;
    ll a[n], b[n];
    for(ll i = 0; i < n; i++) cin >> a[i];
    for(ll i = 0; i < n; i++) cin >> b[i];
    ll l = 0,r = 1e18;
    while(l < r){
        ll mid = (l+r+1)/2;
        vector<ll>v(n+1,mid);
        ll left = n*m;
        for(ll i = 0; i < n; i++){
            ll cur = min((v[i]+max(a[i],b[i])-1)/max(a[i],b[i]),m);
            left-=cur;
            v[i]-=cur*max(a[i],b[i]);
        }
        for(ll i = 0;i < n; i++){
            if(left<0)break;
            if(v[i] > 0){
                left-=(v[i]+b[i]-1)/b[i];
            }
        }
        if(left < 0){
            r = mid-1;
        }
        else l = mid;
    }
    cout << l;
}
#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...