0_0_26577900_17535.cpp: In instantiation of 'constexpr const size_t Plus_Minus_one_RMQ<1000010ull, int, std::less<int> >::S':
0_0_26577900_17535.cpp:52:22: required from 'struct Plus_Minus_one_RMQ<1000010ull, int, std::less<int> >'
0_0_26577900_17535.cpp:125:31: required from 'struct Std_RMQ<500005ull, int>'
0_0_26577900_17535.cpp:224:20: required from here
0_0_26577900_17535.cpp:44:48: error: call to non-constexpr function 'const _Tp& std::max(const _Tp&, const _Tp&) [with _Tp = int]'
S = max(1, (32 - __builtin_clz(N)) >> 1),
^
0_0_26577900_17535.cpp: In instantiation of 'struct Plus_Minus_one_RMQ<1000010ull, int, std::less<int> >':
0_0_26577900_17535.cpp:125:31: required from 'struct Std_RMQ<500005ull, int>'
0_0_26577900_17535.cpp:224:20: required from here
0_0_26577900_17535.cpp:52:22: error: size of array is not an integral constant-expression
int pos[1 << S][S][S];
^
0_0_26577900_17535.cpp:52:22: error: size of array is not an integral constant-expression
0_0_26577900_17535.cpp:53:11: error: size of array is not an integral constant-expression
int lg2[M], mask[M], st[M][32 - __builtin_clz(M)];
^
0_0_26577900_17535.cpp:53:20: error: size of array is not an integral constant-expression
int lg2[M], mask[M], st[M][32 - __builtin_clz(M)];
^
0_0_26577900_17535.cpp: In instantiation of 'int Plus_Minus_one_RMQ<N, T, Comp>::query(int, int) [with long long unsigned int N = 1000010ull; T = int; Comp = std::less<int>]':
0_0_26577900_17535.cpp:151:15: required from 'int Std_RMQ<N, T, Comp>::query(int, int) [with long long unsigned int N = 500005ull; T = int; Comp = std::less<int>]'
0_0_26577900_17535.cpp:239:37: required from here
0_0_26577900_17535.cpp:107:25: error: using invalid field 'Plus_Minus_one_RMQ<N, T, Comp>::pos'
return lx * siz + pos[mask[lx]][l % siz][r % siz];
^
0_0_26577900_17535.cpp:108:25: error: using invalid field 'Plus_Minus_one_RMQ<N, T, Comp>::pos'
int x = lx * siz + pos[mask[lx]][l % siz][siz - 1];
^
0_0_26577900_17535.cpp:109:25: error: using invalid field 'Plus_Minus_one_RMQ<N, T, Comp>::pos'
int y = rx * siz + pos[mask[rx]][0][r % siz];
^
0_0_26577900_17535.cpp:114:10: error: using invalid field 'Plus_Minus_one_RMQ<N, T, Comp>::st'
x = st[lx + 1][k], y = st[rx - (1 << k)][k];
^
0_0_26577900_17535.cpp:114:29: error: using invalid field 'Plus_Minus_one_RMQ<N, T, Comp>::st'
x = st[lx + 1][k], y = st[rx - (1 << k)][k];
^
0_0_26577900_17535.cpp: In instantiation of 'void Plus_Minus_one_RMQ<N, T, Comp>::build(T*, int) [with long long unsigned int N = 1000010ull; T = int; Comp = std::less<int>]':
0_0_26577900_17535.cpp:145:3: required from 'void Std_RMQ<N, T, Comp>::build(T*, int) [with long long unsigned int N = 500005ull; T = int; Comp = std::less<int>]'
0_0_26577900_17535.cpp:294:37: required from here
0_0_26577900_17535.cpp:84:7: error: using invalid field 'Plus_Minus_one_RMQ<N, T, Comp>::st'
st[x][0] = i;
^
0_0_26577900_17535.cpp:89:23: error: using invalid field 'Plus_Minus_one_RMQ<N, T, Comp>::st'
if (cmp(v[i], v[st[x][0]])) st[x][0] = i;
^
0_0_26577900_17535.cpp:89:35: error: using invalid field 'Plus_Minus_one_RMQ<N, T, Comp>::st'
if (cmp(v[i], v[st[x][0]])) st[x][0] = i;
^
0_0_26577900_17535.cpp:99:15: error: using invalid field 'Plus_Minus_one_RMQ<N, T, Comp>::st'
int x = st[i][j - 1], y = st[i + (1 << (j - 1))][j - 1];
^
0_0_26577900_17535.cpp:99:33: error: using invalid field 'Plus_Minus_one_RMQ<N, T, Comp>::st'
int x = st[i][j - 1], y = st[i + (1 << (j - 1))][j - 1];
^
0_0_26577900_17535.cpp:100:7: error: using invalid field 'Plus_Minus_one_RMQ<N, T, Comp>::st'
st[i][j] = cmp(v[x], v[y]) ? x : y;
^
0_0_26577900_17535.cpp: In instantiation of 'void Plus_Minus_one_RMQ<N, T, Comp>::init(int) [with long long unsigned int N = 1000010ull; T = int; Comp = std::less<int>]':
0_0_26577900_17535.cpp:78:9: required from 'void Plus_Minus_one_RMQ<N, T, Comp>::build(T*, int) [with long long unsigned int N = 1000010ull; T = int; Comp = std::less<int>]'
0_0_26577900_17535.cpp:145:3: required from 'void Std_RMQ<N, T, Comp>::build(T*, int) [with long long unsigned int N = 500005ull; T = int; Comp = std::less<int>]'
0_0_26577900_17535.cpp:294:37: required from here
0_0_26577900_17535.cpp:61:8: error: using invalid field 'Plus_Minus_one_RMQ<N, T, Comp>::pos'
pos[i][j][j] = j;
^
0_0_26577900_17535.cpp:65:24: error: using invalid field 'Plus_Minus_one_RMQ<N, T, Comp>::pos'
pos[i][j][k] = pos[i][j][k - 1];
^
0_0_26577900_17535.cpp:65:9: error: using invalid field 'Plus_Minus_one_RMQ<N, T, Comp>::pos'
pos[i][j][k] = pos[i][j][k - 1];
^
0_0_26577900_17535.cpp:70:10: error: using invalid field 'Plus_Minus_one_RMQ<N, T, Comp>::pos'
pos[i][j][k] = k;
^
|