Submission #811009

# Submission time Handle Problem Language Result Execution time Memory
811009 2023-08-06T20:00:25 Z WLZ Packing Biscuits (IOI20_biscuits) C++17
100 / 100
11 ms 1336 KB
#include "biscuits.h"
#include <bits/stdc++.h>
using namespace std;

const long long LINF = (long long) 1e18;

#ifdef DEBUG
#include "../../../templates/debug.h"
#else
#define debug(...) 0
#endif

long long count_tastiness(long long x, std::vector<long long> a) {
  const int k = 62;
  while ((int) a.size() < k) a.push_back(0);
  a.insert(a.begin(), 0ll);
  vector<long long> b = a;
  for (int i = 1; i <= k; i++) b[i] += b[i - 1] / 2;
  b[0] = LINF;
  vector<long long> dp(k + 1, 1); dp[0] = 1;
  for (int i = 1; i <= k; i++) {
    if (b[i] < x) {
      dp[i] = dp[i - 1];
      continue;
    }
    long long taken = max(0ll, x - a[i]) * 2;
    dp[i] = dp[i - 1] + 1;
    for (int j = i - 1; j >= 1; j--) {
      if (b[j] - taken >= x) {
        dp[i] += dp[j - 1];
        taken = (max(0ll, taken + x - a[j])) * 2;
      } else taken = max(0ll, taken - a[j]) * 2;
    }
  }
  return dp[k];
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
11 Correct 0 ms 300 KB Output is correct
12 Correct 1 ms 340 KB Output is correct
13 Correct 0 ms 212 KB Output is correct
14 Correct 0 ms 300 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 304 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 ms 296 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Correct 1 ms 212 KB Output is correct
11 Correct 1 ms 212 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Correct 1 ms 300 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 316 KB Output is correct
2 Correct 7 ms 1108 KB Output is correct
3 Correct 7 ms 1108 KB Output is correct
4 Correct 8 ms 1200 KB Output is correct
5 Correct 7 ms 1176 KB Output is correct
6 Correct 7 ms 1076 KB Output is correct
7 Correct 6 ms 1108 KB Output is correct
8 Correct 6 ms 1144 KB Output is correct
9 Correct 6 ms 1084 KB Output is correct
10 Correct 6 ms 1108 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
11 Correct 0 ms 300 KB Output is correct
12 Correct 1 ms 340 KB Output is correct
13 Correct 0 ms 212 KB Output is correct
14 Correct 0 ms 300 KB Output is correct
15 Correct 1 ms 212 KB Output is correct
16 Correct 1 ms 304 KB Output is correct
17 Correct 0 ms 212 KB Output is correct
18 Correct 1 ms 212 KB Output is correct
19 Correct 0 ms 212 KB Output is correct
20 Correct 1 ms 212 KB Output is correct
21 Correct 0 ms 212 KB Output is correct
22 Correct 1 ms 212 KB Output is correct
23 Correct 1 ms 296 KB Output is correct
24 Correct 0 ms 212 KB Output is correct
25 Correct 0 ms 212 KB Output is correct
26 Correct 0 ms 212 KB Output is correct
27 Correct 0 ms 212 KB Output is correct
28 Correct 0 ms 212 KB Output is correct
29 Correct 0 ms 212 KB Output is correct
30 Correct 0 ms 212 KB Output is correct
31 Correct 0 ms 212 KB Output is correct
32 Correct 0 ms 212 KB Output is correct
33 Correct 1 ms 212 KB Output is correct
34 Correct 1 ms 212 KB Output is correct
35 Correct 1 ms 212 KB Output is correct
36 Correct 1 ms 300 KB Output is correct
37 Correct 2 ms 316 KB Output is correct
38 Correct 7 ms 1108 KB Output is correct
39 Correct 7 ms 1108 KB Output is correct
40 Correct 8 ms 1200 KB Output is correct
41 Correct 7 ms 1176 KB Output is correct
42 Correct 7 ms 1076 KB Output is correct
43 Correct 6 ms 1108 KB Output is correct
44 Correct 6 ms 1144 KB Output is correct
45 Correct 6 ms 1084 KB Output is correct
46 Correct 6 ms 1108 KB Output is correct
47 Correct 2 ms 340 KB Output is correct
48 Correct 8 ms 1332 KB Output is correct
49 Correct 3 ms 340 KB Output is correct
50 Correct 7 ms 1108 KB Output is correct
51 Correct 6 ms 1336 KB Output is correct
52 Correct 2 ms 340 KB Output is correct
53 Correct 5 ms 1108 KB Output is correct
54 Correct 8 ms 1164 KB Output is correct
55 Correct 9 ms 1100 KB Output is correct
56 Correct 11 ms 1208 KB Output is correct
57 Correct 8 ms 1100 KB Output is correct