| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1340949 | Warinchai | Self Study (JOI22_ho_t2) | C++20 | 74 ms | 5128 KiB |
#include<bits/stdc++.h>
#define int long long
using namespace std;
int a[300005],b[300005];
int n,m;
int can(int md){
int left=0;
for(int i=1;i<=n;i++){
int temp=md/a[i];
if(a[i]*temp<md)temp++;
if(temp<=m){
left+=m-temp;
//cerr<<"left:"<<m-temp<<"\n";
}else{
int need=md-m*a[i];
int temp2=need/b[i];
if(temp2*b[i]<need)temp2++;
left-=temp2;
//cerr<<"need:"<<temp2<<"\n";
}
}
return left>=0;
}
int32_t main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>a[i];
int mn=1e18;
for(int i=1;i<=n;i++){
cin>>b[i];
a[i]=max(a[i],b[i]);
mn=min(mn,a[i]);
}
int st=0,en=1e9+5,ans=0;
while(st<=en){
int md=(st+en)/2;
//cerr<<"m:"<<m<<'\n';
if(can(md)){
st=md+1;
ans=md;
}else{
en=md-1;
}
}
cout<<ans;
}| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
