0_0_38113712_15065.cpp:5:54: error: 'enable_if_t' in namespace 'std' does not name a template type
template<class...Cond> using require_ = std::enable_if_t<std::__and_<Cond...>::value, bool>;
^
0_0_38113712_15065.cpp:6:33: error: 'szc::util::require_' has not been declared
template<class T, util::require_<std::is_integral<T>> = true> T ceil_div(const T & a, const T & b) { return ((a + b - 1) / b); }
^
0_0_38113712_15065.cpp:6:41: error: expected '>' before '<' token
template<class T, util::require_<std::is_integral<T>> = true> T ceil_div(const T & a, const T & b) { return ((a + b - 1) / b); }
^
0_0_38113712_15065.cpp:36:31: error: template declaration of 'constexpr const T INF'
template<class T> constexpr T INF = std::numeric_limits<T>::max() / 2 - 5;
^
0_0_38113712_15065.cpp:37:31: error: template declaration of 'constexpr const T NINF'
template<class T> constexpr T NINF = std::numeric_limits<T>::min() / 2 + 5;
^
0_0_38113712_15065.cpp:43:64: error: 'Add' function uses 'auto' type specifier without trailing return type
template<class T, class U> inline auto Add(T a, const U & b) { a += b; while (a >= Mod) a -= Mod; while (a < 0) a += Mod; return a; }
^
0_0_38113712_15065.cpp:43:64: note: deduced return type only available with -std=c++1y or -std=gnu++1y
0_0_38113712_15065.cpp:44:50: error: 'Add' function uses 'auto' type specifier without trailing return type
template<class T> inline auto Add(const T & a) { return Add(a, 0); }
^
0_0_38113712_15065.cpp:44:50: note: deduced return type only available with -std=c++1y or -std=gnu++1y
0_0_38113712_15065.cpp:45:108: error: 'Add' function uses 'auto' type specifier without trailing return type
template<class T, class U, class...Args> inline auto Add(const T & a, const U & b, const Args & ...args) { return (Add(Add(a, b), args...)); }
^
0_0_38113712_15065.cpp:45:108: note: deduced return type only available with -std=c++1y or -std=gnu++1y
0_0_38113712_15065.cpp:46:105: error: 'cAdd' function uses 'auto' type specifier without trailing return type
template<class T, class U, class...Args> inline auto & cAdd(T & a, const U & b, const Args & ...args) { return (a = Add(a, b, args...)); }
^
0_0_38113712_15065.cpp:46:105: note: deduced return type only available with -std=c++1y or -std=gnu++1y
0_0_38113712_15065.cpp:48:72: error: 'Mul' function uses 'auto' type specifier without trailing return type
template<class T, class U> inline auto Mul(const T & a, const U & b) { return (1ll * a * b % Mod); }
^
0_0_38113712_15065.cpp:48:72: note: deduced return type only available with -std=c++1y or -std=gnu++1y
0_0_38113712_15065.cpp:49:108: error: 'Mul' function uses 'auto' type specifier without trailing return type
template<class T, class U, class...Args> inline auto Mul(const T & a, const U & b, const Args & ...args) { return (Mul(Mul(a, b), args...)); }
^
0_0_38113712_15065.cpp:49:108: note: deduced return type only available with -std=c++1y or -std=gnu++1y
0_0_38113712_15065.cpp:50:105: error: 'cMul' function uses 'auto' type specifier without trailing return type
template<class T, class U, class...Args> inline auto & cMul(T & a, const U & b, const Args & ...args) { return (a = Mul(a, b, args...)); }
^
0_0_38113712_15065.cpp:50:105: note: deduced return type only available with -std=c++1y or -std=gnu++1y
0_0_38113712_15065.cpp:53:30: error: 'qPow' function uses 'auto' type specifier without trailing return type
inline auto qPow(T a, U b) {
^
0_0_38113712_15065.cpp:53:30: note: deduced return type only available with -std=c++1y or -std=gnu++1y
0_0_38113712_15065.cpp: In function 'int C(int, int)':
0_0_38113712_15065.cpp:66:56: error: invalid use of 'auto'
return (n < m) ? 0 : Mul(fac[n], inv[m], inv[n - m]);
^
0_0_38113712_15065.cpp: In function 'void init(int)':
0_0_38113712_15065.cpp:72:35: error: invalid use of 'auto'
fac[i] = Mul(fac[i - 1], i);
^
0_0_38113712_15065.cpp:74:34: error: invalid use of 'auto'
inv[n] = qPow(fac[n], Mod - 2);
^
0_0_38113712_15065.cpp:76:39: error: invalid use of 'auto'
inv[i] = Mul(inv[i + 1], i + 1);
^
0_0_38113712_15065.cpp: In function 'int dfs(int)':
0_0_38113712_15065.cpp:97:45: error: invalid use of 'auto'
return Mul(res, C(siz[x] - 1, siz[l[x]]));
^
0_0_38113712_15065.cpp: In function 'void solve(int)':
0_0_38113712_15065.cpp:124:55: error: invalid use of 'auto'
printf("%d\n", (int)Mul(n, inv[2], inv[n], dfs(rt)));
^
0_0_38113712_15065.cpp: In instantiation of 'auto Modulo::Mul(const T&, const U&, const Args& ...) [with T = int; U = int; Args = {int}]':
0_0_38113712_15065.cpp:66:56: required from here
0_0_38113712_15065.cpp:49:132: error: invalid use of 'auto'
template<class T, class U, class...Args> inline auto Mul(const T & a, const U & b, const Args & ...args) { return (Mul(Mul(a, b), args...)); }
^
0_0_38113712_15065.cpp: In instantiation of 'auto Modulo::Mul(const T&, const U&, const Args& ...) [with T = int; U = int; Args = {int, int}]':
0_0_38113712_15065.cpp:124:55: required from here
0_0_38113712_15065.cpp:49:142: error: invalid use of 'auto'
template<class T, class U, class...Args> inline auto Mul(const T & a, const U & b, const Args & ...args) { return (Mul(Mul(a, b), args...)); }
^
0_0_38113712_15065.cpp: In instantiation of 'auto Modulo::Mul(const T&, const U&, const Args& ...) [with T = long long int; U = int; Args = {int}]':
0_0_38113712_15065.cpp:49:142: required from 'auto Modulo::Mul(const T&, const U&, const Args& ...) [with T = int; U = int; Args = {int, int}]'
0_0_38113712_15065.cpp:124:55: required from here
0_0_38113712_15065.cpp:49:132: error: invalid use of 'auto'
template<class T, class U, class...Args> inline auto Mul(const T & a, const U & b, const Args & ...args) { return (Mul(Mul(a, b), args...)); }
^
|