| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1333307 | wstcube | Self Study (JOI22_ho_t2) | C++20 | 263 ms | 5104 KiB |
#include <bits/stdc++.h>
#define fi first
#define se second
#define ll long long
#define pb push_back
using namespace std;
const int N = 3e5+5;
ll b[N],a[N];
bool can(ll x,ll m,ll n){
ll c=0;
for(int i=0;i<n;i++){
if(a[i]>b[i]){
if(m>=(x+a[i]-1)/a[i])
c+=(x+a[i]-1)/a[i];
else{
ll sigma67 = m*a[i];
c+=m;
c+=(x-sigma67+b[i]-1)/b[i];
}
}
else
c+=((x+b[i]-1)/b[i]);
if(c>n*m)
return false;
}
return true;
}
int main(){
ll n;
cin >> n;
ll m;
cin >> m;
ll ma=0;
for(int i=0;i<n;i++){
cin >> a[i];
ma = max(a[i],ma);
}
for(int i=0;i<n;i++)
cin >> b[i];
ll l=1,r=1e18;
while(l!=r){
ll x = (l+r+1)/2;
if(can(x,m,n))
l=x;
else
r=x-1;
}
cout << l;
return 0;
}
| # | 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... | ||||
