foo.cc:6:5: error: definition of 'int __builtin_clz(long long unsigned int)' ambiguates built-in declaration 'int __builtin_clz(unsigned int)'
6 | int __builtin_clz(unsigned long long int a) {
| ^~~~~~~~~~~~~
foo.cc: In function 'int main()':
foo.cc:146:18: warning: unused variable 'k' [-Wunused-variable]
146 | int n, i, j, k;
| ^
foo.cc: In instantiation of 'void convolution::poly<mint, g>::init(int) [with mint = convolution::modint::mint<998244353>; int g = 3]':
foo.cc:79:13: required from 'void convolution::poly<mint, g>::ntt(int, int) [with mint = convolution::modint::mint<998244353>; int g = 3]'
foo.cc:108:13: required from 'convolution::poly<mint, g> convolution::poly<mint, g>::convolution_ntt(convolution::poly<mint, g>) [with mint = convolution::modint::mint<998244353>; int g = 3]'
foo.cc:121:43: required from 'convolution::poly<mint, g>& convolution::poly<mint, g>::operator*=(const convolution::poly<mint, g>&) [with mint = convolution::modint::mint<998244353>; int g = 3]'
foo.cc:122:60: required from 'convolution::poly<mint, g> convolution::poly<mint, g>::operator*(const convolution::poly<mint, g>&) [with mint = convolution::modint::mint<998244353>; int g = 3]'
foo.cc:160:21: required from here
foo.cc:69:26: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
69 | if (r.size() < limit) r.resize(limit);
| ~~~~~~~~~^~~~~~~
foo.cc: In instantiation of 'convolution::modint::mint<m>& convolution::modint::mint<m>::operator+=(const convolution::modint::mint<m>&) [with int m = 998244353]':
foo.cc:41:64: required from 'convolution::modint::mint<m> convolution::modint::mint<m>::operator+(const convolution::modint::mint<m>&) [with int m = 998244353]'
foo.cc:93:34: required from 'void convolution::poly<mint, g>::ntt(int, int) [with mint = convolution::modint::mint<998244353>; int g = 3]'
foo.cc:108:13: required from 'convolution::poly<mint, g> convolution::poly<mint, g>::convolution_ntt(convolution::poly<mint, g>) [with mint = convolution::modint::mint<998244353>; int g = 3]'
foo.cc:121:43: required from 'convolution::poly<mint, g>& convolution::poly<mint, g>::operator*=(const convolution::poly<mint, g>&) [with mint = convolution::modint::mint<998244353>; int g = 3]'
foo.cc:122:60: required from 'convolution::poly<mint, g> convolution::poly<mint, g>::operator*(const convolution::poly<mint, g>&) [with mint = convolution::modint::mint<998244353>; int g = 3]'
foo.cc:160:21: required from here
foo.cc:37:63: warning: comparison of integer expressions of different signedness: 'unsigned int' and 'const int' [-Wsign-compare]
37 | mint& operator+=(const mint& t) { x += t.x; if (x >= mod) x -= mod; return *this; }
| ~~^~~~~~
foo.cc: In instantiation of 'convolution::modint::mint<m>& convolution::modint::mint<m>::operator-=(const convolution::modint::mint<m>&) [with int m = 998244353]':
foo.cc:42:64: required from 'convolution::modint::mint<m> convolution::modint::mint<m>::operator-(const convolution::modint::mint<m>&) [with int m = 998244353]'
foo.cc:94:40: required from 'void convolution::poly<mint, g>::ntt(int, int) [with mint = convolution::modint::mint<998244353>; int g = 3]'
foo.cc:108:13: required from 'convolution::poly<mint, g> convolution::poly<mint, g>::convolution_ntt(convolution::poly<mint, g>) [with mint = convolution::modint::mint<998244353>; int g = 3]'
foo.cc:121:43: required from 'convolution::poly<mint, g>& convolution::poly<mint, g>::operator*=(const convolution::poly<mint, g>&) [with mint = convolution::modint::mint<998244353>; int g = 3]'
foo.cc:122:60: required from 'convolution::poly<mint, g> convolution::poly<mint, g>::operator*(const convolution::poly<mint, g>&) [with mint = convolution::modint::mint<998244353>; int g = 3]'
foo.cc:160:21: required from here
foo.cc:38:69: warning: comparison of integer expressions of different signedness: 'unsigned int' and 'const int' [-Wsign-compare]
38 | mint& operator-=(const mint& t) { x += mod - t.x; if (x >= mod) x -= mod; return *this; }
| ~~^~~~~~
[Hydro](https://hydro.ac)提供评测服务