128152025-01-01 16:21:17MagyarKendeSZLGHázszámokcpp17Hibás válasz 20/1002ms572 KiB
#include <bits/stdc++.h>
using namespace std;
#define int int64_t

const int MAXW = 12;

int32_t main() {
    cin.tie(0), ios::sync_with_stdio(0);
    int K;
    cin >> K;
    vector<int> a(K);
    cin >> a[K - 1];
    for (int i = 0; i < K - 1; i++) cin >> a[i];

    vector<int> pw(MAXW + 1, 1);
    for (int i = 1; i <= MAXW; i++) pw[i] = pw[i - 1] * K;

    auto f = [&](int n) -> bool {
        vector<int> req(K);
        for (int i = 1; i <= MAXW; i++) {
            int div = (n - (pw[i - 1] - 1)) / pw[i],
                rem = max((int)0, n - (pw[i - 1] - 1)) %
                      pw[i];
            for (int j = 0; j < K; j++) {
                req[j] += div * pw[i - 1];
                req[j] += min(rem, pw[i - 1]);
                if (req[j] > a[j]) return 0;
                rem -= min(rem, pw[i - 1]);
            }
        }
        return 1;
    };

    int l = 0, r = 1e14;
    while (r - l > 1) {
        int m = (r + l) / 2;
        if (!f(m)) {
            r = m;
        } else {
            l = m;
        }
    }
    cout << l << "\n";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms320 KiB
2Elfogadva1ms500 KiB
3Hibás válasz1ms320 KiB
subtask20/25
4Hibás válasz2ms428 KiB
5Hibás válasz1ms320 KiB
6Elfogadva1ms320 KiB
7Elfogadva1ms320 KiB
8Elfogadva1ms428 KiB
9Elfogadva1ms428 KiB
10Hibás válasz1ms568 KiB
11Elfogadva1ms320 KiB
12Elfogadva1ms508 KiB
13Elfogadva1ms320 KiB
14Elfogadva1ms320 KiB
15Elfogadva1ms320 KiB
16Elfogadva1ms508 KiB
17Elfogadva1ms320 KiB
18Elfogadva1ms320 KiB
19Elfogadva1ms320 KiB
subtask30/10
20Hibás válasz1ms320 KiB
21Hibás válasz1ms320 KiB
22Hibás válasz1ms500 KiB
23Elfogadva1ms320 KiB
24Hibás válasz1ms320 KiB
subtask40/15
25Hibás válasz1ms320 KiB
26Hibás válasz1ms320 KiB
27Hibás válasz1ms568 KiB
28Hibás válasz1ms320 KiB
29Hibás válasz1ms500 KiB
30Elfogadva1ms320 KiB
31Hibás válasz1ms320 KiB
32Elfogadva1ms320 KiB
33Elfogadva1ms320 KiB
subtask520/20
34Elfogadva1ms320 KiB
35Elfogadva1ms320 KiB
36Elfogadva1ms428 KiB
37Elfogadva1ms320 KiB
38Elfogadva1ms320 KiB
39Elfogadva1ms320 KiB
40Elfogadva1ms320 KiB
41Elfogadva1ms320 KiB
42Elfogadva1ms320 KiB
subtask60/30
43Hibás válasz1ms320 KiB
44Hibás válasz1ms320 KiB
45Hibás válasz1ms428 KiB
46Hibás válasz1ms320 KiB
47Hibás válasz1ms320 KiB
48Elfogadva1ms320 KiB
49Elfogadva1ms320 KiB
50Elfogadva1ms380 KiB
51Elfogadva1ms428 KiB
52Elfogadva1ms320 KiB
53Hibás válasz1ms320 KiB
54Hibás válasz1ms572 KiB
55Hibás válasz1ms320 KiB
56Hibás válasz1ms320 KiB
57Hibás válasz1ms508 KiB
58Hibás válasz1ms320 KiB
59Elfogadva1ms500 KiB
60Elfogadva1ms320 KiB