Submission #890487

#TimeUsernameProblemLanguageResultExecution timeMemory
890487irmuunSelf Study (JOI22_ho_t2)C++17
100 / 100
233 ms13928 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define ff first #define ss second #define all(s) s.begin(),s.end() #define rall(s) s.rbegin(),s.rend() int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); ll n,m; cin>>n>>m; ll a[n+5],b[n+5]; for(ll i=1;i<=n;i++){ cin>>a[i]; } for(ll i=1;i<=n;i++){ cin>>b[i]; a[i]=max(a[i],b[i]); } ll l=0,r=1e18; ll need[n+5]; while(l<r){ ll mid=(l+r+1)/2; fill(need+1,need+n+1,mid); ll left=0; for(ll i=1;i<=n;i++){ ll x=min((need[i]+a[i]-1)/a[i],m); need[i]-=x*a[i]; left+=m-x; } ll cur=0; bool ok=true; for(ll i=1;i<=n;i++){ if(need[i]>0){ cur+=(need[i]+b[i]-1)/b[i]; if(cur>left){ ok=false; break; } } } if(ok){ l=mid; } else{ r=mid-1; } } 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...