제출 #1182582

#제출 시각아이디문제언어결과실행 시간메모리
1182582PieArmySelf Study (JOI22_ho_t2)C++20
100 / 100
86 ms4936 KiB
#include<bits/stdc++.h> typedef long long ll; #define pb push_back #define fr first #define sc second using namespace std; ll n,m; ll a[300023],b[300023]; bool f(ll x){ __int128_t ek=0; for(int i=1;i<=n;i++){ if(m*a[i]==x)continue; if(m*a[i]>x){ ek+=m-1; ek-=(x-1)/a[i]; } else{ if(((x-m*a[i]-1)/b[i])>n*m)return false; ek-=(x-m*a[i]-1)/b[i]+1; } } return (ek>=0); } int main(){ ios_base::sync_with_stdio(false);cin.tie(NULL); cin>>n>>m; for(int i=1;i<=n;i++){ cin>>a[i]; } for(int i=1;i<=n;i++){ cin>>b[i]; a[i]=max(a[i],b[i]); } ll l=1,r=m*1000000000ll; while(l<r){ ll mi=(l+r+1)>>1; if(f(mi))l=mi; else r=mi-1; } cout<<max(min(max(min(l,r),min(l,r)),max(min(l,r),min(l,r))),min(max(min(l,r),min(l,r)),max(min(l,r),min(l,r)))); }
#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...