Submission #1187352

#TimeUsernameProblemLanguageResultExecution timeMemory
1187352maxFedorchukSelf Study (JOI22_ho_t2)C++20
62 / 100
87 ms5004 KiB
#include <bits/stdc++.h>
using namespace std;

const long long MX=3e5+10;

long long n,m,a[MX],b[MX];

bool chk(unsigned long long zn)
{
    __int128 s=0,cmp=n*m;
    for(long long i=1;i<=n;i++)
    {
        if(a[i]*m>=zn)
        {
            s+=(zn+a[i]-1)/a[i];
        }
        else
        {
            s+=m;
            s+=(zn-a[i]*m+b[i]-1)/b[i];
        }
    }
    
    return (s<=cmp);
}

int main()
{
    cin.tie(0);
    ios_base::sync_with_stdio(0);
    
    cin>>n>>m;
    
    for(long long i=1;i<=n;i++)
    {
        cin>>a[i];
    }
    
    for(long long i=1;i<=n;i++)
    {
        cin>>b[i];
        a[i]=max(a[i],b[i]);
    }
    
    unsigned long long l=0,r=1e18+1;
    
    while(l+1<r)
    {
        unsigned long long mid=(l+r)/2;
        if(chk(mid))
        {
            l=mid;
        }
        else
        {
            r=mid;
        }
    }
    
    cout<<l<<"\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...