# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1223218 | TadijaSebez | Self Study (JOI22_ho_t2) | C++20 | 131 ms | 3216 KiB |
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int N=300050;
int a[N],b[N];
int main(){
int n,m;
scanf("%i %i",&n,&m);
for(int i=1;i<=n;i++){
scanf("%i",&a[i]);
}
for(int i=1;i<=n;i++){
scanf("%i",&b[i]);
}
ll top=3e15,bot=0,ans=0;
while(top>=bot){
ll mid=top+bot>>1;
ll need=0;
ll have=0;
for(int i=1;i<=n;i++){
if(b[i]>=a[i]){
need+=(mid+b[i]-1)/b[i];
have+=m;
}else{
ll tmp=(mid+a[i]-1)/a[i];
if(tmp<=m){
have+=m-tmp;
}else{
need+=(mid-(ll)a[i]*m+b[i]-1)/b[i];
}
}
}
if(need>have){
top=mid-1;
}else{
ans=mid;
bot=mid+1;
}
}
printf("%lld\n",ans);
return 0;
}
Compilation message (stderr)
# | 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... |