Language: C++

#include <iostream>
#include <cstdio>
using namespace std;
const int maxn = 2e5 + 50,maxm = 5.3e5,mod = 924844033,g = 5;
int n,x,y,cnt,N,last[maxn],d[maxn],size[maxn],ifac[maxn],inv[20],W[20],inv_W[20],rev[maxm],F[maxm],G[maxm];
struct edge{
	int v,nxt;
}e[2 * maxn];
int read(){
	int x = 0;
	char c = getchar();
	while(c < '0' || c > '9') c = getchar();
	while(c >= '0' && c <= '9') x = x * 10 + (c ^ 48),c = getchar();
	return x;
}
inline int add(int x,int y){
	if(x + y < mod) return x + y;
	else return x + y - mod;
}
inline int dec(int x,int y){
	if(x - y >= 0) return x - y;
	else return x - y + mod;
}
int qpow(int x,int k){
	int d = 1,t = x;
	while(k){
		if(k & 1) d = 1ll * d * t % mod;
		t = 1ll * t * t % mod,k >>= 1;
	}
	return d;
}
void NTT_init(int n){
	N = 1;
	int cnt = 0;
	while(N <= n) N <<= 1,cnt ++;
	for(int i = 0; i < N; i ++) rev[i] = (rev[i >> 1] >> 1) | ((i & 1) << (cnt - 1));
}
void NTT(int *F,int n,int p){
	for(int i = 0; i < n; i ++) if(i < rev[i]) swap(F[i],F[rev[i]]);
	int cnt = 1;
	for(int i = 1; i < n; i <<= 1){
		int w1 = (p == 1 ? W[cnt] : inv_W[cnt]);
		for(int j = 0; j < n; j += i << 1){
			int w = 1;
			for(int k = j; k < j + i; k ++){
				int t1 = F[k],t2 = 1ll * w * F[k + i] % mod;
				F[k] = add(t1,t2),F[k + i] = dec(t1,t2);
				w = 1ll * w * w1 % mod;
			}
		}
		cnt ++;
	}
	if(p == -1) for(int i = 0; i < n; i ++) F[i] = 1ll * F[i] * inv[cnt - 1] % mod;
}
void Mul(int *F,int *G,int n){
	NTT_init(n << 1);
	NTT(F,N,1),NTT(G,N,1);
	for(int i = 0; i < N; i ++) F[i] = 1ll * F[i] * G[i] % mod;
	NTT(F,N,-1);
}
void init(int n){
	NTT_init(n << 1);
	int t = qpow(2,mod - 2);
	inv[0] = 1;
	for(int i = 1; (1 << i) <= N; i ++) inv[i] = 1ll * inv[i - 1] * t % mod;
	for(int i = 1; (1 << i) <= N; i ++) W[i] = qpow(g,(mod - 1) / (1 << i)),inv_W[i] = qpow(W[i],mod - 2);
}
inline void insert(int x,int y){
	cnt ++,e[cnt].v = y,e[cnt].nxt = last[x],last[x] = cnt;
}
void dfs(int u,int fa){
	size[u] = 1;
	for(int i = last[u]; i; i = e[i].nxt){
		int v = e[i].v;
		if(v == fa) continue;
		dfs(v,u);
		size[u] += size[v];
	}
	if(u != fa) d[size[u]] --,d[n - size[u]] --;
}
int main(){
	n = read();
	for(int i = 1; i < n; i ++){
		x = read(),y = read();
		insert(x,y),insert(y,x);
	}
	dfs(1,1);
	d[n] = n;
	init(n);
	int p = 1;
	for(int i = 0; i <= n; i ++) p = 1ll * p * (i ? i : 1) % mod,F[n - i] = 1ll * p * dec(d[i],0) % mod;
	int t = qpow(p,mod - 2); 
	for(int i = n; i >= 0; i --) G[i] = ifac[i] = t,t = 1ll * t * i % mod;
//	for(int i = 0; i <= n; i ++) cout << F[i] << ' ' << G[i] << endl;
	Mul(F,G,n);
	for(int i = 1; i <= n; i ++) printf("%d\n",1ll * ifac[i] * F[n - i] % mod);
	return 0;
}

Compiler output:
a.cc: In function 'void dfs(int, int)':
a.cc:72:9: error: reference to 'size' is ambiguous
   72 |         size[u] = 1;
      |         ^~~~
In file included from /usr/include/c++/14/string:53,
                 from /usr/include/c++/14/bits/locale_classes.h:40,
                 from /usr/include/c++/14/bits/ios_base.h:41,
                 from /usr/include/c++/14/ios:44,
                 from /usr/include/c++/14/ostream:40,
                 from /usr/include/c++/14/iostream:41,
                 from a.cc:1:
/usr/include/c++/14/bits/range_access.h:272:5: note: candidates are: 'template<class _Tp, long unsigned int _Nm> constexpr std::size_t std::size(const _Tp (&)[_Nm])'
  272 |     size(const _Tp (&)[_Nm]) noexcept
      |     ^~~~
/usr/include/c++/14/bits/range_access.h:262:5: note:                 'template<class _Container> constexpr decltype (__cont.size()) std::size(const _Container&)'
  262 |     size(const _Container& __cont) noexcept(noexcept(__cont.size()))
      |     ^~~~
a.cc:5:36: note:                 'int size [200050]'
    5 | int n,x,y,cnt,N,last[maxn],d[maxn],size[maxn],ifac[maxn],inv[20],W[20],inv_W[20],rev[maxm],F[maxm],G[maxm];
      |                                    ^~~~
a.cc:77:17: error: reference to 'size' is ambiguous
   77 |                 size[u] += size[v];
      |                 ^~~~
/usr/include/c++/14/bits/range_access.h:272:5: note: candidates are: 'template<class _Tp, long unsigned int _Nm> constexpr std::size_t std::size(const _Tp (&)[_Nm])'
  272 |     size(const _Tp (&)[_Nm]) noexcept
      |     ^~~~
/usr/include/c++/14/bits/range_access.h:262:5: note:                 'template<class _Container> constexpr decltype (__cont.size()) std::size(const _Container&)'
  262 |     size(const _Container& __cont) noexcept(noexcept(__cont.size()))
      |     ^~~~
a.cc:5:36: note:                 'int size [200050]'
    5 | int n,x,y,cnt,N,last[maxn],d[maxn],size[maxn],ifac[maxn],inv[20],W[20],inv_W[20],rev[maxm],F[maxm],G[maxm];
      |                                    ^~~~
a.cc:77:28: error: reference to 'size' is ambiguous
   77 |                 size[u] += size[v];
      |                            ^~~~
/usr/include/c++/14/bits/range_access.h:272:5: note: candidates are: 'template<class _Tp, long unsigned int _Nm> constexpr std::size_t std::size(const _Tp (&)[_Nm])'
  272 |     size(const _Tp (&)[_Nm]) noexcept
      |     ^~~~
/usr/include/c++/14/bits/range_access.h:262:5: note:                 'template<class _Container> constexpr decltype (__cont.size()) std::size(const _Container&)'
  262 |     size(const _Container& __cont) noexcept(noexcept(__cont.size()))
      |     ^~~~
a.cc:5:36: note:                 'int size [200050]'
    5 | int n,x,y,cnt,N,last[maxn],d[maxn],size[maxn],ifac[maxn],inv[20],W[20],inv_W[20],rev[maxm],F[maxm],G[maxm];
      |                                    ^~~~
a.cc:79:23: error: reference to 'size' is ambiguous
   79 |         if(u != fa) d[size[u]] --,d[n - size[u]] --;
      |                       ^~~~
/usr/include/c++/14/bits/range_access.h:272:5: note: candidates are: 'template<class _Tp, long unsigned int _Nm> constexpr std::size_t std::size(const _Tp (&)[_Nm])'
  272 |     size(const _Tp (&)[_Nm]) noexcept
      |     ^~~~
/usr/include/c++/14/bits/range_access.h:262:5: note:                 'template<class _Container> constexpr decltype (__cont.size()) std::size(const _Container&)'
  262 |     size(const _Container& __cont) noexcept(noexcept(__cont.size()))
      |     ^~~~
a.cc:5:36: note:                 'int size [200050]'
    5 | int n,x,y,cnt,N,last[maxn],d[maxn],size[maxn],ifac[maxn],inv[20],W[20],inv_W[20],rev[maxm],F[maxm],G[maxm];
      |                                    ^~~~
a.cc:79:41: error: reference to 'size' is ambiguous
   79 |         if(u != fa) d[size[u]] --,d[n - size[u]] --;
      |                                         ^~~~
/usr/include/c++/14/bits/range_access.h:272:5: note: candidates are: 'template<class _Tp, long unsigned int _Nm> constexpr std::size_t std::size(const _Tp (&)[_Nm])'
  272 |     size(const _Tp (&)[_Nm]) noexcept
      |     ^~~~
/usr/include/c++/14/bits/range_access.h:262:5: note:                 'template<class _Container> constexpr decltype (__cont.size()) std::size(const _Container&)'
  262 |     size(const _Container& __cont) noexcept(noexcept(__cont.size()))
      |     ^~~~
a.cc:5:36: note:                 'int size [200050]'
    5 | int n,x,y,cnt,N,last[maxn],d[maxn],size[maxn],ifac[maxn],inv[20],W[20],inv_W[20],rev[maxm],F[maxm],G[maxm];
      |                                    ^~~~