39292023-03-05 19:07:42zsomborHázszámokcpp17Elfogadva 100/1003ms5284 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]) {
            cnt[0] += (x - h[i - 1] + 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1876 KiB
2Elfogadva3ms2116 KiB
3Elfogadva3ms2168 KiB
subtask225/25
4Elfogadva3ms2304 KiB
5Elfogadva3ms2520 KiB
6Elfogadva3ms2732 KiB
7Elfogadva3ms2944 KiB
8Elfogadva3ms3196 KiB
9Elfogadva2ms3244 KiB
10Elfogadva3ms3272 KiB
11Elfogadva2ms3340 KiB
12Elfogadva3ms3584 KiB
13Elfogadva2ms3664 KiB
14Elfogadva2ms3668 KiB
15Elfogadva3ms3552 KiB
16Elfogadva3ms3672 KiB
17Elfogadva3ms3672 KiB
18Elfogadva3ms3796 KiB
19Elfogadva3ms3880 KiB
subtask310/10
20Elfogadva3ms3888 KiB
21Elfogadva2ms3772 KiB
22Elfogadva3ms3924 KiB
23Elfogadva3ms3956 KiB
24Elfogadva3ms3956 KiB
subtask415/15
25Elfogadva3ms3952 KiB
26Elfogadva3ms3848 KiB
27Elfogadva3ms3984 KiB
28Elfogadva3ms4096 KiB
29Elfogadva3ms4092 KiB
30Elfogadva3ms4212 KiB
31Elfogadva3ms4216 KiB
32Elfogadva3ms4340 KiB
33Elfogadva3ms4336 KiB
subtask520/20
34Elfogadva3ms4304 KiB
35Elfogadva3ms4416 KiB
36Elfogadva3ms4304 KiB
37Elfogadva3ms4392 KiB
38Elfogadva3ms4516 KiB
39Elfogadva3ms4480 KiB
40Elfogadva3ms4604 KiB
41Elfogadva3ms4484 KiB
42Elfogadva3ms4600 KiB
subtask630/30
43Elfogadva3ms4624 KiB
44Elfogadva3ms4852 KiB
45Elfogadva3ms4824 KiB
46Elfogadva3ms5040 KiB
47Elfogadva3ms5140 KiB
48Elfogadva3ms5140 KiB
49Elfogadva3ms5140 KiB
50Elfogadva3ms5260 KiB
51Elfogadva3ms5172 KiB
52Elfogadva3ms5168 KiB
53Elfogadva3ms5168 KiB
54Elfogadva3ms5168 KiB
55Elfogadva3ms5164 KiB
56Elfogadva3ms5160 KiB
57Elfogadva3ms5284 KiB
58Elfogadva2ms5284 KiB
59Elfogadva2ms5044 KiB
60Elfogadva3ms5048 KiB