39272023-03-05 18:49:20zsomborHázszámokcpp17Wrong answer 25/1003ms5488 KiB
#include <iostream>
#include <vector>
using namespace std;
using ll = long long;

ll k, n = 0;
vector <ll> h(50, 1);
vector <ll> CNT(10, 0);
vector <ll> cnt(10, 0);
vector <ll> v(50, 0);

bool check(ll x) {
    fill(cnt.begin(), cnt.end(), 0);
    fill(v.begin(), v.end(), 0);
    for (ll i = 1; i <= n; i++) {
        if (x < h[i]-1) {
            cnt[0] += ((x + 1) % h[i - 1]) * i;
            break;
        }
        cnt[0] += (k - 1) * h[i - 1] * i;
    }
    for (ll i = n; i >= 0; i--) {
        v[i] = x / h[i];
        x %= h[i];
        if (v[i]) cnt[v[i]] += x + 1;
        for (int j = 1; j < v[i]; j++) cnt[j] += h[i];
        for (int j = 1; j < k; j++) cnt[j] += h[i] * i / k * v[i];
    }
    for (int i = 1; i < k; i++) cnt[0] -= cnt[i];
    for (int i = 0; i < k; i++) if (cnt[i] > CNT[i]) return false;
    return true;
}

int main()
{
    cin >> k;
    while (h[n] < 1e13) { n++; h[n] = k * h[n - 1]; }
    for (int i = 0; i < k; i++) cin >> CNT[i];
    ll l = 0, r = 1e13, m;
    while (r - l > 1) {
        m = (l + r) / 2;
        (check(m) ? l = m : r = m);
    }
    cout << l;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted3ms1880 KiB
2Accepted3ms2080 KiB
3Accepted3ms2296 KiB
subtask20/25
4Accepted3ms2376 KiB
5Accepted3ms2504 KiB
6Accepted2ms2592 KiB
7Accepted3ms2836 KiB
8Accepted2ms2804 KiB
9Accepted3ms3044 KiB
10Accepted2ms3004 KiB
11Accepted3ms3008 KiB
12Accepted3ms3280 KiB
13Accepted3ms3420 KiB
14Accepted3ms3528 KiB
15Wrong answer3ms3608 KiB
16Accepted3ms3528 KiB
17Accepted3ms3720 KiB
18Accepted3ms3848 KiB
19Accepted3ms4084 KiB
subtask310/10
20Accepted3ms4136 KiB
21Accepted3ms4028 KiB
22Accepted2ms4024 KiB
23Accepted2ms4152 KiB
24Accepted3ms4156 KiB
subtask415/15
25Accepted3ms4272 KiB
26Accepted2ms4276 KiB
27Accepted3ms4528 KiB
28Accepted3ms4508 KiB
29Accepted3ms4500 KiB
30Accepted2ms4504 KiB
31Accepted3ms4756 KiB
32Accepted3ms4876 KiB
33Accepted3ms5120 KiB
subtask50/20
34Accepted3ms5132 KiB
35Accepted3ms5132 KiB
36Wrong answer3ms5264 KiB
37Accepted3ms5260 KiB
38Accepted2ms5268 KiB
39Accepted2ms5372 KiB
40Accepted2ms5264 KiB
41Accepted2ms5268 KiB
42Accepted2ms5264 KiB
subtask60/30
43Accepted3ms5264 KiB
44Accepted3ms5176 KiB
45Accepted3ms5252 KiB
46Accepted3ms5256 KiB
47Accepted2ms5256 KiB
48Wrong answer2ms5380 KiB
49Accepted2ms5256 KiB
50Accepted2ms5252 KiB
51Accepted2ms5376 KiB
52Accepted2ms5488 KiB
53Accepted2ms5252 KiB
54Accepted2ms5380 KiB
55Accepted2ms5484 KiB
56Accepted2ms5376 KiB
57Accepted3ms5252 KiB
58Accepted2ms5372 KiB
59Accepted2ms5376 KiB
60Accepted3ms5404 KiB