답안 #805417

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
805417 2023-08-03T16:32:17 Z vjudge1 Self Study (JOI22_ho_t2) C++17
0 / 100
1 ms 340 KB
#include<bits/stdc++.h>

using namespace std;
using ll = long long;

const int N = 3e5 + 10;
ll n, m;
ll A[N], B[N];

ll divi(ll a, ll b) {
    return (a + b - 1) / b;
}

bool check(ll x) {
    ll s = 0;
    for(int i = 0; i < n; i++) {
        if(B[i] >= A[i]) {
            s += divi(x, B[i]);
        } else {
            ll t = min(m, divi(x, A[i]));
            s += t + divi(max(x - t * A[i], 0ll), B[i]);
        }
        if(s > n * m) return 0;
    }
    return 1;
}
const ll INF = 1000000000000000000;
ll solve() {
    ll l = 0, r = INF;
    while(r - l > 1) {
        ll mid = (l + r) / 2;
        if(check(mid)) l = mid;
        else r = mid;
    }
    return l;
}

mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count());
uniform_int_distribution<ll> ui(1, 1000000000);
void gen() {
    for(int i = 0; i < n; i++)  
        A[i] = rnd();
    for(int i = 0; i < n; i++)  
        B[i] = rnd();
}
ll stupid() {
    ll mx = (ll)1e18;
    for(int i = 0; i < n; i++)
        mx = min(mx, max(A[i], B[i]));
    return mx;
}
int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    cin >> n >> m;
    for(int i = 0; i < n; i++) 
        cin >> A[i];
    for(int i = 0; i < n; i++) 
        cin >> B[i];
    // int t = 1000;
    // do {
    //     gen();
    //     t--;
    // }
    // while(stupid() == solve() && t);
    // if(!t) {
    //     cout << "OK";
    //     return 0;
    // }
    // for(int i = 0; i < n; i++) 
    //     cout << A[i] << ' ';
    // cout << '\n';
    // for(int i = 0; i < n; i++) 
    //     cout << B[i] << ' ';
    // cout << '\n';
    cout << "slow: " << stupid() << '\n';
    cout << "fast: " << solve() << '\n';
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -