Submission #1021485

#TimeUsernameProblemLanguageResultExecution timeMemory
1021485j_vdd16Packing Biscuits (IOI20_biscuits)C++17
Compilation error
0 ms0 KiB
#include <algorithm>
#include <bitset>
#include <cstdint>
#include <cstring>
#include <iostream>
#include <limits.h>
#include <math.h>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <vector>

#define int long long
#define ll long long
#define loop(X, N) for(int X = 0; X < (N); X++)
#define all(V) V.begin(), V.end()
#define rall(V) V.rbegin(), V.rend()

using namespace std;

typedef vector<int> vi;
typedef vector<vi> vvi;
typedef pair<int, int> ii;
typedef vector<ii> vii;
typedef vector<vector<ii>> vvii;
typedef vector<bool> vb;
typedef vector<vector<bool>> vvb;


int count_tastiness(int x, vi a)
{
	constexpr int N = a.size();
  	for (int i = 1; i < N; i++)
		a[i] *= (1LL << i);
  
	vi values = { 0 };
	for (int bit = 0; bit < N; bit++)
	{
		int sz = values.size();
		loop(i, sz) {
			int& count = values[i];
			count += a[bit];

			if (count / (1LL << bit) >= x)
				values.push_back(count - x * (1LL << bit));
		}
	}
	
	return values.size();
}

Compilation message (stderr)

biscuits.cpp: In function 'long long int count_tastiness(long long int, vi)':
biscuits.cpp:35:26: error: call to non-'constexpr' function 'std::vector<_Tp, _Alloc>::size_type std::vector<_Tp, _Alloc>::size() const [with _Tp = long long int; _Alloc = std::allocator<long long int>; std::vector<_Tp, _Alloc>::size_type = long unsigned int]'
   35 |  constexpr int N = a.size();
      |                    ~~~~~~^~
In file included from /usr/include/c++/10/vector:67,
                 from /usr/include/c++/10/functional:62,
                 from /usr/include/c++/10/pstl/glue_algorithm_defs.h:13,
                 from /usr/include/c++/10/algorithm:74,
                 from biscuits.cpp:1:
/usr/include/c++/10/bits/stl_vector.h:918:7: note: 'std::vector<_Tp, _Alloc>::size_type std::vector<_Tp, _Alloc>::size() const [with _Tp = long long int; _Alloc = std::allocator<long long int>; std::vector<_Tp, _Alloc>::size_type = long unsigned int]' declared here
  918 |       size() const _GLIBCXX_NOEXCEPT
      |       ^~~~