Submission #315676

# Submission time Handle Problem Language Result Execution time Memory
315676 2020-10-23T16:12:26 Z Sorting Packing Biscuits (IOI20_biscuits) C++17
42 / 100
1000 ms 101172 KB
#include "biscuits.h"
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

ll x, k;
vector<ll> a;

ll count_tastiness(ll _x, vector<ll> _a){
    x = _x, a = _a;
    k = a.size();

    vector<array<ll, 2>> curr, prev;
    prev.push_back({0, 1});
    for(int i = 0; i < k; ++i, swap(curr, prev)){
        ll l = prev[0][0], r = prev.back()[0];
        l += a[i], r += a[i];

        if(l < x){
            if(r >= x) l = 0;
            else l = l / 2;
        }
        else l = (l - x) / 2;
        r = r / 2;

        curr.resize(r - l + 1);
        for(int j = 0; j < r - l + 1; ++j)
            curr[j] = {j + l, 0};

        for(int j = 0; j < prev.size(); ++j){
            ll t = prev[j][0] + a[i];
            curr[t / 2 - l][1] += prev[j][1];
            if(t >= x) curr[(t - x) / 2 - l][1] += prev[j][1]; 
        }
    }

    ll ans = 0;
    for(int i = 0; i < prev.size(); ++i)
        ans += (prev[i][0] / x + 1) * prev[i][1];

    return ans; 
}

Compilation message

biscuits.cpp: In function 'll count_tastiness(ll, std::vector<long long int>)':
biscuits.cpp:32:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::array<long long int, 2> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |         for(int j = 0; j < prev.size(); ++j){
      |                        ~~^~~~~~~~~~~~~
biscuits.cpp:40:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::array<long long int, 2> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   40 |     for(int i = 0; i < prev.size(); ++i)
      |                    ~~^~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 256 KB Output is correct
2 Correct 1 ms 288 KB Output is correct
3 Correct 0 ms 256 KB Output is correct
4 Correct 1 ms 256 KB Output is correct
5 Correct 0 ms 256 KB Output is correct
6 Correct 0 ms 256 KB Output is correct
7 Correct 1 ms 256 KB Output is correct
8 Correct 1 ms 256 KB Output is correct
9 Correct 1 ms 256 KB Output is correct
10 Correct 0 ms 256 KB Output is correct
11 Correct 1 ms 384 KB Output is correct
12 Correct 1 ms 256 KB Output is correct
13 Correct 1 ms 256 KB Output is correct
14 Correct 1 ms 256 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 256 KB Output is correct
2 Correct 1 ms 256 KB Output is correct
3 Correct 0 ms 256 KB Output is correct
4 Correct 1 ms 256 KB Output is correct
5 Correct 1 ms 256 KB Output is correct
6 Correct 1 ms 256 KB Output is correct
7 Correct 0 ms 256 KB Output is correct
8 Correct 1 ms 256 KB Output is correct
9 Correct 1 ms 256 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 768 KB Output is correct
2 Correct 1 ms 384 KB Output is correct
3 Correct 1 ms 384 KB Output is correct
4 Correct 0 ms 256 KB Output is correct
5 Correct 0 ms 256 KB Output is correct
6 Correct 1 ms 256 KB Output is correct
7 Correct 0 ms 256 KB Output is correct
8 Correct 32 ms 876 KB Output is correct
9 Correct 2 ms 688 KB Output is correct
10 Correct 0 ms 256 KB Output is correct
11 Correct 1 ms 256 KB Output is correct
12 Correct 5 ms 384 KB Output is correct
13 Correct 32 ms 916 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 1049 ms 101172 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 256 KB Output is correct
2 Correct 1 ms 288 KB Output is correct
3 Correct 0 ms 256 KB Output is correct
4 Correct 1 ms 256 KB Output is correct
5 Correct 0 ms 256 KB Output is correct
6 Correct 0 ms 256 KB Output is correct
7 Correct 1 ms 256 KB Output is correct
8 Correct 1 ms 256 KB Output is correct
9 Correct 1 ms 256 KB Output is correct
10 Correct 0 ms 256 KB Output is correct
11 Correct 1 ms 384 KB Output is correct
12 Correct 1 ms 256 KB Output is correct
13 Correct 1 ms 256 KB Output is correct
14 Correct 1 ms 256 KB Output is correct
15 Correct 1 ms 256 KB Output is correct
16 Correct 1 ms 256 KB Output is correct
17 Correct 0 ms 256 KB Output is correct
18 Correct 1 ms 256 KB Output is correct
19 Correct 1 ms 256 KB Output is correct
20 Correct 1 ms 256 KB Output is correct
21 Correct 0 ms 256 KB Output is correct
22 Correct 1 ms 256 KB Output is correct
23 Correct 1 ms 256 KB Output is correct
24 Correct 2 ms 768 KB Output is correct
25 Correct 1 ms 384 KB Output is correct
26 Correct 1 ms 384 KB Output is correct
27 Correct 0 ms 256 KB Output is correct
28 Correct 0 ms 256 KB Output is correct
29 Correct 1 ms 256 KB Output is correct
30 Correct 0 ms 256 KB Output is correct
31 Correct 32 ms 876 KB Output is correct
32 Correct 2 ms 688 KB Output is correct
33 Correct 0 ms 256 KB Output is correct
34 Correct 1 ms 256 KB Output is correct
35 Correct 5 ms 384 KB Output is correct
36 Correct 32 ms 916 KB Output is correct
37 Execution timed out 1049 ms 101172 KB Time limit exceeded
38 Halted 0 ms 0 KB -