| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1357113 | kismis | Self Study (JOI22_ho_t2) | C++20 | 188 ms | 5104 KiB |
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define vt vector
#define pb push_back
#define pob pop_back
#define endl '\n'
#define fi first
#define se second
bool check(int& mid , vt<int>& a , vt<int>& b , int& n , int& m ){
int cnt = 0;
for(int i=0 ; i<n ; i++){
if(a[i] > b[i]){
if(m*a[i] >= mid){
cnt += (mid+a[i]-1)/a[i];
}
else {
int temp = mid - m*a[i];
cnt += m;
cnt += (temp+b[i]-1)/b[i];
}
}
else{
cnt += (mid+b[i]-1)/b[i];
}
if (cnt > m * n) {
return false;
}
}
return true;
}
signed main(){
int n , m;
cin >> n >> m;
vt<int> a(n);
vt<int> b(n);
for(int& i : a)
cin >> i;
for(int& i : b)
cin >> i;
int l = 0;
int r = 1000000000000000005ll;
while(l + 1 < r){
int mid = (l+r)/2;
if(check(mid , a , b , n , m))
l = mid;
else
r = mid;
}
cout << l << endl;
}
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
