提出 #51399560


ソースコード 拡げる

#include "bits/stdc++.h"

using namespace std;
using ll = long long;

#ifndef ONLINE_JUDGE
#include "debug.h"
#else
#define deb(x...)
#endif

#define int         long long
#define ull         unsigned long long
#define all(x)      x.begin(), x.end()
#define rev(x)      x.rbegin(), x.rend()
#define uid(a, b)   uniform_int_distribution<long long>(a, b)(rng)

mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());

const ll INF = (ll)1e18;
const int mod = (int)1e9 + 7;

ll floor (ll a, ll b) {
    return a / b - ((a ^ b) < 0 and a % b);
}

ll ceil (ll a, ll b) {
    return floor(a, b) + (a % b != 0);
}

void solve() {
    array<int, 5> a, p;
    for (auto &x : a) cin >> x;
    for (auto &x : p) cin >> x;

    int num = 0, den = 0;
    for (int i = 0; i < 5; i++) {
        num += a[i] * (i + 1);
        den += a[i];
    }

    if (num >= 3 * den or !p[3] or !p[4]) return void(cout << "0\n");

    int c = 3 * den - num;
    auto check = [&](int m) -> bool {
        if (p[4] <= p[3]) {
            return ceil(c, 2) * p[4] <= m;
        } else if (2 * p[3] - p[4] > 0) {
            return max(ceil(c, 2), 1ll) <= min(floor(m - c * (p[4] - p[3]), 2 * p[3] - p[4]), floor(m, p[3]));
        } else if (2 * p[3] - p[4] < 0) {
            return max({ceil(m - c * (p[4] - p[3]), 2 * p[3] - p[4]), ceil(c, 2), 1ll}) <= floor(m, p[3]);
        } else {
            return max(ceil(c, 2), 1ll) <= floor(m, p[3]) and m >= c * (p[4] - p[3]);
        }
    };

    int lo = 0, hi = INF, ans = -1;
    while (lo <= hi) {
        int mid = (lo + hi) >> 1;
        if (check(mid)) {
            ans = mid;
            hi = mid - 1;
        }
        else lo = mid + 1;
    }
    assert(ans != -1);
    cout << ans << "\n";
}

int32_t main() {

    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int TESTS; cin >> TESTS;
    while (TESTS--) solve();

    return 0;
}

提出情報

提出日時
問題 B - Bought Review
ユーザ Sarthak3204
言語 C++ 23 (gcc 12.2)
得点 300
コード長 1967 Byte
結果 AC
実行時間 12 ms
メモリ 3644 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 300 / 300
結果
AC × 1
AC × 40
セット名 テストケース
Sample sample_01.txt
All sample_01.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt
ケース名 結果 実行時間 メモリ
sample_01.txt AC 1 ms 3512 KiB
test_01.txt AC 1 ms 3496 KiB
test_02.txt AC 1 ms 3448 KiB
test_03.txt AC 4 ms 3504 KiB
test_04.txt AC 4 ms 3516 KiB
test_05.txt AC 5 ms 3584 KiB
test_06.txt AC 4 ms 3524 KiB
test_07.txt AC 6 ms 3516 KiB
test_08.txt AC 4 ms 3456 KiB
test_09.txt AC 6 ms 3636 KiB
test_10.txt AC 5 ms 3520 KiB
test_11.txt AC 6 ms 3452 KiB
test_12.txt AC 6 ms 3512 KiB
test_13.txt AC 6 ms 3516 KiB
test_14.txt AC 5 ms 3644 KiB
test_15.txt AC 6 ms 3480 KiB
test_16.txt AC 5 ms 3524 KiB
test_17.txt AC 6 ms 3480 KiB
test_18.txt AC 5 ms 3520 KiB
test_19.txt AC 10 ms 3640 KiB
test_20.txt AC 9 ms 3456 KiB
test_21.txt AC 10 ms 3512 KiB
test_22.txt AC 8 ms 3460 KiB
test_23.txt AC 9 ms 3480 KiB
test_24.txt AC 9 ms 3588 KiB
test_25.txt AC 10 ms 3480 KiB
test_26.txt AC 9 ms 3560 KiB
test_27.txt AC 9 ms 3512 KiB
test_28.txt AC 9 ms 3512 KiB
test_29.txt AC 12 ms 3480 KiB
test_30.txt AC 10 ms 3504 KiB
test_31.txt AC 12 ms 3520 KiB
test_32.txt AC 10 ms 3516 KiB
test_33.txt AC 12 ms 3604 KiB
test_34.txt AC 10 ms 3480 KiB
test_35.txt AC 12 ms 3608 KiB
test_36.txt AC 10 ms 3500 KiB
test_37.txt AC 12 ms 3516 KiB
test_38.txt AC 11 ms 3484 KiB
test_39.txt AC 1 ms 3580 KiB