Submission #1287644

#TimeUsernameProblemLanguageResultExecution timeMemory
1287644mattgrytsSelf Study (JOI22_ho_t2)C++20
100 / 100
142 ms5136 KiB
//Denysiuk Illia will win EJOI 2026 //Denysiuk Illia will win UJGOI 2026 //Антон Перебейнис ничего не ботал #include <algorithm> #include <bits/stdc++.h> #include <cassert> #include <functional> using namespace std; const long long INF=1e17; const long long mod=1e9+7; const long long maxlog=22; using victor = vector<int>; using victorl = vector<long long>; using dih = deque<int>; using pll=pair<int,int>; using ll = long long; const int NIGGA=2*1e5+10; long long ceil(ll a,ll b){ return max(0ll,(a+b-1)/b); } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; ll m; cin>>n>>m; victorl a(n),b(n); for(auto &ai:a)cin>>ai; for(auto &bi:b)cin>>bi; ll l=0,r=4e18; while(r-l>1){ ll tm=(l+r)/2; ll cnt=1ll*n*m; bool bad=false; for(int i=0;i<n;i++){ long long mn=0; if(a[i]>b[i]){ if(ceil(tm,a[i])>m)mn=m+ceil(tm-m*a[i],b[i]); else mn=ceil(tm,a[i]); } else{ mn=ceil(tm,b[i]); } if(cnt-mn<0){ bad=true; break; }else cnt-=mn; } if(!bad)l=tm; else r=tm; } cout<<l<<'\n'; }
#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...