49852023-04-08 15:33:49TomaSajtHázszámokcpp17Hibás válasz 25/100300ms4916 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

int base;

// I have no idea how this works, just started messing around with formulas on
// OEIS and got this working

// calculates the number of `d` digits used from `1..n`
ll pog(ll n, int d) {
  if (n <= 0)
    return 0;
  ll r = n % base;
  ll q = n / base;
  ll res = q + (r + 1) * pog(q, d) + (base - r - 1) * pog(q - 1, d);
  if (d != 0 && r >= d)
    return res + 1;
  return res;
}

int main() {
  cin >> base;
  vector<ll> budget(base);
  for (auto &b : budget)
    cin >> b;
  auto is_enough = [&](int n) {
    for (int i = 0; i < base; i++) {
      ll a = pog(n, i);
      if (a > budget[i])
        return false;
    }
    return true;
  };

  ll curr = 0;
  for (int i = 20; i >= 0; i--) {
    ll next = curr + (1ll << i);
    if (is_enough(next)) {
      curr = next;
    }
  }
  cout << curr;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva32ms1732 KiB
2Elfogadva3ms1856 KiB
3Hibás válasz3ms2096 KiB
subtask225/25
4Elfogadva32ms2344 KiB
5Elfogadva35ms2588 KiB
6Elfogadva34ms2768 KiB
7Elfogadva3ms2924 KiB
8Elfogadva3ms3136 KiB
9Elfogadva3ms3352 KiB
10Elfogadva34ms3556 KiB
11Elfogadva3ms3812 KiB
12Elfogadva3ms3888 KiB
13Elfogadva3ms4020 KiB
14Elfogadva3ms4196 KiB
15Elfogadva3ms4308 KiB
16Elfogadva3ms4364 KiB
17Elfogadva3ms4240 KiB
18Elfogadva2ms4248 KiB
19Elfogadva3ms4480 KiB
subtask30/10
20Időlimit túllépés261ms4432 KiB
21Időlimit túllépés263ms4452 KiB
22Időlimit túllépés268ms4328 KiB
23Elfogadva30ms4456 KiB
24Időlimit túllépés300ms4564 KiB
subtask40/15
25Időlimit túllépés264ms4536 KiB
26Hibás válasz14ms4668 KiB
27Hibás válasz4ms4668 KiB
28Hibás válasz4ms4700 KiB
29Hibás válasz3ms4680 KiB
30Elfogadva3ms4680 KiB
31Hibás válasz3ms4672 KiB
32Hibás válasz3ms4672 KiB
33Hibás válasz3ms4796 KiB
subtask50/20
34Elfogadva3ms4796 KiB
35Elfogadva2ms4816 KiB
36Hibás válasz3ms4788 KiB
37Hibás válasz3ms4796 KiB
38Hibás válasz3ms4916 KiB
39Hibás válasz3ms4800 KiB
40Hibás válasz3ms4796 KiB
41Hibás válasz3ms4676 KiB
42Hibás válasz3ms4788 KiB
subtask60/30
43Időlimit túllépés300ms4764 KiB
44Hibás válasz14ms4816 KiB
45Hibás válasz4ms4792 KiB
46Hibás válasz4ms4792 KiB
47Hibás válasz3ms4788 KiB
48Hibás válasz3ms4672 KiB
49Hibás válasz3ms4672 KiB
50Hibás válasz3ms4676 KiB
51Hibás válasz3ms4672 KiB
52Elfogadva32ms4672 KiB
53Hibás válasz14ms4796 KiB
54Hibás válasz4ms4676 KiB
55Hibás válasz4ms4788 KiB
56Hibás válasz3ms4788 KiB
57Hibás válasz3ms4676 KiB
58Hibás válasz3ms4672 KiB
59Hibás válasz3ms4676 KiB
60Hibás válasz3ms4788 KiB