제출 #534092

#제출 시각아이디문제언어결과실행 시간메모리
534092PixelCatSelf Study (JOI22_ho_t2)C++14
62 / 100
242 ms9796 KiB
#include <bits/stdc++.h>
#define For(i,a,b) for(int i=a;i<=b;i++)
#define Forr(i,a,b) for(int i=a;i>=b;i--)
#define F first
#define S second
#define sz(x) ((int)x.size())
#define all(x) x.begin(),x.end()
#define eb emplace_back
#define INF (ll)(9e18)
#define int __int128_t
using namespace std;
using LL=long long;
using pii=pair<int,int>;

const int MAXN=300030;
int a[MAXN];
int b[MAXN];

bool check(__int128_t n,__int128_t m,__int128_t tar){
    __int128_t s=0,d=0;
    For(i,1,n){
        if(m*a[i]>=tar){
            s+=(m*a[i]-tar)/a[i];
        }else{
            int t=tar-m*a[i];
            d+=(t+b[i]-1)/b[i];
        }
    }
    return s>=d;
}

int32_t main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    // OAO
    long long n,m; cin>>n>>m;
    For(i,1,n){
        long long t; cin>>t;
        a[i]=t;
    }
    For(i,1,n){
        long long t; cin>>t;
        b[i]=t;
        a[i]=max(a[i],b[i]);
    }
    int hi=1e18+10;
    int lo=0;
    while(hi-lo>1){
        int mi=(hi+lo)/2;
        if(check(n,m,mi)) lo=mi;
        else hi=mi;
    }
    cout<<(long long)lo<<"\n";
    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...