0_0_30277163_17041.cpp: In instantiation of 'constexpr const size_t PlusMinus1RMQ<600010ull, int, std::less<int> >::S':
0_0_30277163_17041.cpp:159:22: required from 'struct PlusMinus1RMQ<600010ull, int, std::less<int> >'
0_0_30277163_17041.cpp:232:32: required from 'struct StdRMQ<300005ull, int, std::less<int> >'
0_0_30277163_17041.cpp:268:17: required from 'struct LCP<300005ull>'
0_0_30277163_17041.cpp:283:11: required from here
0_0_30277163_17041.cpp:151:65: error: call to non-constexpr function 'const _Tp& std::max(const _Tp&, const _Tp&) [with _Tp = int]'
static constexpr size_t S = max(1, (32 - __builtin_clz(N)) >> 1),
^
0_0_30277163_17041.cpp: In instantiation of 'struct PlusMinus1RMQ<600010ull, int, std::less<int> >':
0_0_30277163_17041.cpp:232:32: required from 'struct StdRMQ<300005ull, int, std::less<int> >'
0_0_30277163_17041.cpp:268:17: required from 'struct LCP<300005ull>'
0_0_30277163_17041.cpp:283:11: required from here
0_0_30277163_17041.cpp:159:22: error: size of array is not an integral constant-expression
int pos[1 << S][S][S];
^
0_0_30277163_17041.cpp:159:22: error: size of array is not an integral constant-expression
0_0_30277163_17041.cpp:160:11: error: size of array is not an integral constant-expression
int lg2[M], mask[M], st[M][32 - __builtin_clz(M)];
^
0_0_30277163_17041.cpp:160:20: error: size of array is not an integral constant-expression
int lg2[M], mask[M], st[M][32 - __builtin_clz(M)];
^
In file included from GCC4.9.2/x86_64-w64-mingw32/include/c++/bits/char_traits.h:39:0,
from GCC4.9.2/x86_64-w64-mingw32/include/c++/ios:40,
from GCC4.9.2/x86_64-w64-mingw32/include/c++/istream:38,
from GCC4.9.2/x86_64-w64-mingw32/include/c++/sstream:38,
from GCC4.9.2/x86_64-w64-mingw32/include/c++/complex:45,
from GCC4.9.2/x86_64-w64-mingw32/include/c++/ccomplex:38,
from GCC4.9.2/x86_64-w64-mingw32/include/c++/x86_64-w64-mingw32/bits/stdc++.h:52,
from 0_0_30277163_17041.cpp:1:
GCC4.9.2/x86_64-w64-mingw32/include/c++/bits/stl_algobase.h: In instantiation of 'bool std::equal(_IIter1, _IIter1, _IIter2, _BinaryPredicate) [with _IIter1 = int*; _IIter2 = int*; _BinaryPredicate = int*]':
0_0_30277163_17041.cpp:30:59: required from here
GCC4.9.2/x86_64-w64-mingw32/include/c++/bits/stl_algobase.h:1088:46: error: '__binary_pred' cannot be used as a function
if (!bool(__binary_pred(*__first1, *__first2)))
^
0_0_30277163_17041.cpp: In instantiation of 'void PlusMinus1RMQ<N, T, Comp>::build(T*, int) [with long long unsigned int N = 600010ull; T = int; Comp = std::less<int>]':
0_0_30277163_17041.cpp:252:3: required from 'void StdRMQ<N, T, Comp>::build(T*, int) [with long long unsigned int N = 300005ull; T = int; Comp = std::less<int>]'
0_0_30277163_17041.cpp:273:3: required from 'void LCP<N>::init(int*, int*, int) [with long long unsigned int N = 300005ull]'
0_0_30277163_17041.cpp:303:25: required from here
0_0_30277163_17041.cpp:191:7: error: using invalid field 'PlusMinus1RMQ<N, T, Comp>::st'
st[x][0] = i;
^
0_0_30277163_17041.cpp:196:23: error: using invalid field 'PlusMinus1RMQ<N, T, Comp>::st'
if (cmp(v[i], v[st[x][0]])) st[x][0] = i;
^
0_0_30277163_17041.cpp:196:35: error: using invalid field 'PlusMinus1RMQ<N, T, Comp>::st'
if (cmp(v[i], v[st[x][0]])) st[x][0] = i;
^
0_0_30277163_17041.cpp:206:15: error: using invalid field 'PlusMinus1RMQ<N, T, Comp>::st'
int x = st[i][j - 1], y = st[i + (1 << (j - 1))][j - 1];
^
0_0_30277163_17041.cpp:206:33: error: using invalid field 'PlusMinus1RMQ<N, T, Comp>::st'
int x = st[i][j - 1], y = st[i + (1 << (j - 1))][j - 1];
^
0_0_30277163_17041.cpp:207:7: error: using invalid field 'PlusMinus1RMQ<N, T, Comp>::st'
st[i][j] = cmp(v[x], v[y]) ? x : y;
^
0_0_30277163_17041.cpp: In instantiation of 'int PlusMinus1RMQ<N, T, Comp>::query(int, int) [with long long unsigned int N = 600010ull; T = int; Comp = std::less<int>]':
0_0_30277163_17041.cpp:258:15: required from 'int StdRMQ<N, T, Comp>::query(int, int) [with long long unsigned int N = 300005ull; T = int; Comp = std::less<int>]'
0_0_30277163_17041.cpp:280:37: required from 'int LCP<N>::query(int, int) [with long long unsigned int N = 300005ull]'
0_0_30277163_17041.cpp:314:27: required from here
0_0_30277163_17041.cpp:214:25: error: using invalid field 'PlusMinus1RMQ<N, T, Comp>::pos'
return lx * siz + pos[mask[lx]][l % siz][r % siz];
^
0_0_30277163_17041.cpp:215:25: error: using invalid field 'PlusMinus1RMQ<N, T, Comp>::pos'
int x = lx * siz + pos[mask[lx]][l % siz][siz - 1];
^
0_0_30277163_17041.cpp:216:25: error: using invalid field 'PlusMinus1RMQ<N, T, Comp>::pos'
int y = rx * siz + pos[mask[rx]][0][r % siz];
^
0_0_30277163_17041.cpp:221:10: error: using invalid field 'PlusMinus1RMQ<N, T, Comp>::st'
x = st[lx + 1][k], y = st[rx - (1 << k)][k];
^
0_0_30277163_17041.cpp:221:29: error: using invalid field 'PlusMinus1RMQ<N, T, Comp>::st'
x = st[lx + 1][k], y = st[rx - (1 << k)][k];
^
0_0_30277163_17041.cpp: In instantiation of 'void PlusMinus1RMQ<N, T, Comp>::init(int) [with long long unsigned int N = 600010ull; T = int; Comp = std::less<int>]':
0_0_30277163_17041.cpp:185:9: required from 'void PlusMinus1RMQ<N, T, Comp>::build(T*, int) [with long long unsigned int N = 600010ull; T = int; Comp = std::less<int>]'
0_0_30277163_17041.cpp:252:3: required from 'void StdRMQ<N, T, Comp>::build(T*, int) [with long long unsigned int N = 300005ull; T = int; Comp = std::less<int>]'
0_0_30277163_17041.cpp:273:3: required from 'void LCP<N>::init(int*, int*, int) [with long long unsigned int N = 300005ull]'
0_0_30277163_17041.cpp:303:25: required from here
0_0_30277163_17041.cpp:168:8: error: using invalid field 'PlusMinus1RMQ<N, T, Comp>::pos'
pos[i][j][j] = j;
^
0_0_30277163_17041.cpp:172:24: error: using invalid field 'PlusMinus1RMQ<N, T, Comp>::pos'
pos[i][j][k] = pos[i][j][k - 1];
^
0_0_30277163_17041.cpp:172:9: error: using invalid field 'PlusMinus1RMQ<N, T, Comp>::pos'
pos[i][j][k] = pos[i][j][k - 1];
^
0_0_30277163_17041.cpp:177:10: error: using invalid field 'PlusMinus1RMQ<N, T, Comp>::pos'
pos[i][j][k] = k;
^
|