Submission #538659

#TimeUsernameProblemLanguageResultExecution timeMemory
538659BenmathSelf Study (JOI22_ho_t2)C++14
100 / 100
401 ms10852 KiB
#include<bits/stdc++.h>
using namespace std;
int main(){
 
long long int n;
long long int m;
cin>>n>>m;
long long int a[n];
long long int b[n];
for(int i=0;i<n;i++){
   cin>>a[i];
}
for(int i=0;i<n;i++){
   
   cin>>b[i];

}
for(int i=0;i<n;i++){
   a[i]=max(a[i],b[i]);

}
long long int l=1;
long long int r=1e18;
r=r*8;
long long int ans=0;

while(l<=r){
   long long int mid=l+(r-l)/2;
int t1=0;
   long long int brojac=0;
   for(int i=0;i<n;i++){
      long long int ro=m*a[i];
      if(ro>=mid){
         brojac=brojac+mid/a[i];
         if(mid%a[i]!=0){
            brojac++;
         }
      }else{
         brojac=brojac+m;
         long long int mid1=mid-ro;
        
         
         brojac=brojac+mid1/b[i];
         
         if(mid1%b[i]!=0){
            brojac++;
         }
         
      }
      if(brojac>(n*m)){
         t1++;
         brojac=0;
      }
   }
   if(t1==0){
      ans=max(ans,mid);
      l=mid+1;
   }else{
      r=mid-1;
   }
}

cout<<ans<<endl;
}
#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...