제출 #1357060

#제출 시각아이디문제언어결과실행 시간메모리
1357060j3573rSelf Study (JOI22_ho_t2)C++20
62 / 100
176 ms5104 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 = 1e18 + 5;
    while(l + 1 < r){
        int mid = (l+r)/2;
        if(check(mid , a , b , n , m))
        l = mid;
    else
    r = mid;
    }
    cout << l << endl;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…