0_0_38431339_3114.cpp: In function 'int main()':
0_0_38431339_3114.cpp:335:20: error: the value of 'mod' is not usable in a constant expression
using mint = MInt<mod>;
^
0_0_38431339_3114.cpp:334:13: note: 'int mod' is not const
static int mod;
^
0_0_38431339_3114.cpp:335:23: error: 'mod' is not a valid template argument for type 'const int&' because object 'mod' has not external linkage
using mint = MInt<mod>;
^
0_0_38431339_3114.cpp:336:20: error: 'mint' was not declared in this scope
using poly = Poly<mint, FFTMod<mint, double>>;
^
0_0_38431339_3114.cpp:336:33: error: the value of 'mint' is not usable in a constant expression
using poly = Poly<mint, FFTMod<mint, double>>;
^
0_0_38431339_3114.cpp:336:20: note: 'mint' was not declared 'constexpr'
using poly = Poly<mint, FFTMod<mint, double>>;
^
0_0_38431339_3114.cpp:336:39: error: type/value mismatch at argument 1 in template parameter list for 'template<class Mint, class T> class FFTMod'
using poly = Poly<mint, FFTMod<mint, double>>;
^
0_0_38431339_3114.cpp:336:39: error: expected a type, got 'mint'
0_0_38431339_3114.cpp:336:45: error: template argument 1 is invalid
using poly = Poly<mint, FFTMod<mint, double>>;
^
0_0_38431339_3114.cpp:336:45: error: template argument 2 is invalid
0_0_38431339_3114.cpp:340:10: error: the value of 'mint' is not usable in a constant expression
vector<mint> fac(n + 1), ifac(n + 1);
^
0_0_38431339_3114.cpp:336:20: note: 'mint' was not declared 'constexpr'
using poly = Poly<mint, FFTMod<mint, double>>;
^
0_0_38431339_3114.cpp:340:14: error: type/value mismatch at argument 1 in template parameter list for 'template<class _Tp, class _Alloc> class std::vector'
vector<mint> fac(n + 1), ifac(n + 1);
^
0_0_38431339_3114.cpp:340:14: error: expected a type, got 'mint'
0_0_38431339_3114.cpp:340:14: error: template argument 2 is invalid
0_0_38431339_3114.cpp:340:19: error: invalid type in declaration before '(' token
vector<mint> fac(n + 1), ifac(n + 1);
^
0_0_38431339_3114.cpp:341:8: error: invalid types 'int[int]' for array subscript
fac[0] = 1;
^
0_0_38431339_3114.cpp:342:21: error: invalid types 'int[int]' for array subscript
rep(i, 1, n) fac[i] = fac[i - 1] * i;
^
0_0_38431339_3114.cpp:342:34: error: invalid types 'int[int]' for array subscript
rep(i, 1, n) fac[i] = fac[i - 1] * i;
^
0_0_38431339_3114.cpp:343:22: error: invalid types 'int[int]' for array subscript
rep(i, 0, n) ifac[i] = mint{1} / fac[i];
^
0_0_38431339_3114.cpp:343:34: error: expected primary-expression before '/' token
rep(i, 0, n) ifac[i] = mint{1} / fac[i];
^
0_0_38431339_3114.cpp:343:40: error: 'i' was not declared in this scope
rep(i, 0, n) ifac[i] = mint{1} / fac[i];
^
0_0_38431339_3114.cpp:345:10: error: the value of 'mint' is not usable in a constant expression
vector<mint> fs(n + 1), as(n + 1);
^
0_0_38431339_3114.cpp:336:20: note: 'mint' was not declared 'constexpr'
using poly = Poly<mint, FFTMod<mint, double>>;
^
0_0_38431339_3114.cpp:345:14: error: type/value mismatch at argument 1 in template parameter list for 'template<class _Tp, class _Alloc> class std::vector'
vector<mint> fs(n + 1), as(n + 1);
^
0_0_38431339_3114.cpp:345:14: error: expected a type, got 'mint'
0_0_38431339_3114.cpp:345:14: error: template argument 2 is invalid
0_0_38431339_3114.cpp:345:18: error: invalid type in declaration before '(' token
vector<mint> fs(n + 1), as(n + 1);
^
0_0_38431339_3114.cpp:346:7: error: invalid types 'int[int]' for array subscript
fs[0] = 0;
^
0_0_38431339_3114.cpp:347:20: error: invalid types 'int[int]' for array subscript
rep(i, 1, n) as[i] = mint{2}.pow(1ll * i * (i - 1) / 2) / fac[i];
^
0_0_38431339_3114.cpp:347:31: error: expected primary-expression before '.' token
rep(i, 1, n) as[i] = mint{2}.pow(1ll * i * (i - 1) / 2) / fac[i];
^
0_0_38431339_3114.cpp:348:22: error: the value of 'mint' is not usable in a constant expression
CDQDivdeAndConquer<mint, FFTMod<mint>>(fs, as, [&](int i, mint x) { return as[i] * i - x; });
^
0_0_38431339_3114.cpp:336:20: note: 'mint' was not declared 'constexpr'
using poly = Poly<mint, FFTMod<mint, double>>;
^
0_0_38431339_3114.cpp:348:35: error: the value of 'mint' is not usable in a constant expression
CDQDivdeAndConquer<mint, FFTMod<mint>>(fs, as, [&](int i, mint x) { return as[i] * i - x; });
^
0_0_38431339_3114.cpp:336:20: note: 'mint' was not declared 'constexpr'
using poly = Poly<mint, FFTMod<mint, double>>;
^
0_0_38431339_3114.cpp:348:35: error: type/value mismatch at argument 1 in template parameter list for 'template<class Mint, class T> class FFTMod'
CDQDivdeAndConquer<mint, FFTMod<mint>>(fs, as, [&](int i, mint x) { return as[i] * i - x; });
^
0_0_38431339_3114.cpp:348:35: error: expected a type, got 'mint'
0_0_38431339_3114.cpp:348:61: error: 'mint' is not a type
CDQDivdeAndConquer<mint, FFTMod<mint>>(fs, as, [&](int i, mint x) { return as[i] * i - x; });
^
0_0_38431339_3114.cpp: In lambda function:
0_0_38431339_3114.cpp:348:82: error: invalid types 'int[int]' for array subscript
CDQDivdeAndConquer<mint, FFTMod<mint>>(fs, as, [&](int i, mint x) { return as[i] * i - x; });
^
0_0_38431339_3114.cpp: In function 'int main()':
0_0_38431339_3114.cpp:348:94: error: no matching function for call to 'CDQDivdeAndConquer(int&, int&, main()::<lambda(int, int)>)'
CDQDivdeAndConquer<mint, FFTMod<mint>>(fs, as, [&](int i, mint x) { return as[i] * i - x; });
^
0_0_38431339_3114.cpp:348:94: note: candidate is:
0_0_38431339_3114.cpp:310:6: note: template<class T, class FFT> void CDQDivdeAndConquer(std::vector<_RealType>&, const std::vector<_RealType>&, const std::function<T(int, const T&)>&)
void CDQDivdeAndConquer(vector<T> &as, const vector<T> &bs, const function<T(int, const T&)> &f) {
^
0_0_38431339_3114.cpp:310:6: note: template argument deduction/substitution failed:
0_0_38431339_3114.cpp:348:94: error: template argument 2 is invalid
CDQDivdeAndConquer<mint, FFTMod<mint>>(fs, as, [&](int i, mint x) { return as[i] * i - x; });
^
0_0_38431339_3114.cpp:349:20: error: invalid types 'int[int]' for array subscript
rep(i, 1, n) fs[i] /= i;
^
0_0_38431339_3114.cpp:351:30: error: 'mint' does not name a type
auto solve = [&](int g) -> mint {
^
0_0_38431339_3114.cpp: In lambda function:
0_0_38431339_3114.cpp:352:4: error: 'poly' was not declared in this scope
poly rs(n / g + 1);
^
0_0_38431339_3114.cpp:354:5: error: 'rs' was not declared in this scope
rs[i / g] = fs[i];
^
0_0_38431339_3114.cpp:354:21: error: invalid types 'int[int]' for array subscript
rs[i / g] = fs[i];
^
0_0_38431339_3114.cpp:356:11: error: 'rs' was not declared in this scope
return rs.exp()[n / g] * fac[n];
^
0_0_38431339_3114.cpp:356:34: error: invalid types 'int[int]' for array subscript
return rs.exp()[n / g] * fac[n];
^
0_0_38431339_3114.cpp: In function 'int main()':
0_0_38431339_3114.cpp:359:10: error: the value of 'mint' is not usable in a constant expression
vector<mint> ans(n + 1);
^
0_0_38431339_3114.cpp:336:20: note: 'mint' was not declared 'constexpr'
using poly = Poly<mint, FFTMod<mint, double>>;
^
0_0_38431339_3114.cpp:359:14: error: type/value mismatch at argument 1 in template parameter list for 'template<class _Tp, class _Alloc> class std::vector'
vector<mint> ans(n + 1);
^
0_0_38431339_3114.cpp:359:14: error: expected a type, got 'mint'
0_0_38431339_3114.cpp:359:14: error: template argument 2 is invalid
0_0_38431339_3114.cpp:359:19: error: invalid type in declaration before '(' token
vector<mint> ans(n + 1);
^
0_0_38431339_3114.cpp:360:37: error: invalid types 'int[int]' for array subscript
rep(i, 1, n) if (n % i == 0) ans[i] = solve(i);
^
0_0_38431339_3114.cpp:361:60: error: invalid types 'int[int]' for array subscript
revrep(i, 1, n) for (int j = i * 2; j <= n; j += i) ans[i] -= ans[j];
^
0_0_38431339_3114.cpp:361:70: error: invalid types 'int[int]' for array subscript
revrep(i, 1, n) for (int j = i * 2; j <= n; j += i) ans[i] -= ans[j];
^
0_0_38431339_3114.cpp:362:8: error: expected ';' before 'res'
mint res = 0;
^
0_0_38431339_3114.cpp:363:16: error: 'res' was not declared in th
|