Language: C++

#include<bits/stdc++.h>
using namespace std;
const int MAXN = 2e5 + 10;
struct EdgeNode{
	int next,to;
}edge[MAXN<<1];
int head[MAXN],cnt=1,N;
void add(int u,int v){
	cnt++; edge[cnt].next=head[u]; head[u] = cnt; edge[cnt].to = v;
}
void insert(int u,int v){
	add(u,v); add(v,u); 
}
const int MOD = 1e9 + 7;
#define LL long long
int size[MAXN],size2[MAXN];
LL fac[MAXN],ans[MAXN],sum;

LL qpow(LL x, LL y){
	LL re = 1;
	for (; y; y>>=1,x=x*x%MOD)
		if (y&1) re = re*x%MOD;
	return re;
}
void dfs(int u,int last){
	size[u] = 1;
	fac[u] = 1;
	for (int i=head[u]; i; i=edge[i].next){
		int v = edge[i].to;
		if (v == last) continue;
		dfs(v,u);
		size[u] += size[v];
		fac[u] = fac[u]*fac[v]%MOD;
	}
	fac[u] = fac[u]*size[u]%MOD;
}

void dfs2(int u,int last,LL p){
	LL t = p;
	for (int i=head[u]; i; i=edge[i].next){
		int v = edge[i].to;
		if (v == last) continue;
		t = t*fac[v]%MOD;
	}
	ans[u] = sum*qpow(t,MOD-2)%MOD*qpow(N,MOD-2)%MOD;
	for (int i=head[u]; i; i=edge[i].next){
		int v = edge[i].to;
		if (v == last) continue;
		p = p*fac[v]%MOD;
	}
	for (int i=head[u]; i; i=edge[i].next){
		int v = edge[i].to;
		if (v == last) continue;
		dfs2(v,u,p*qpow(fac[v],MOD-2)%MOD*(N-size[v])%MOD);
	}
}

int main(){
	scanf("%d",&N);
	for (int i=1; i<N; i++){
		int u,v; scanf("%d%d",&u,&v);
		insert(u,v);
	}	
	sum = 1LL;
	for (int i=1; i<=N; i++) sum *= i;
	dfs(1,0);
	dfs2(1,0,1);
//	for (int i=1; i<=N; i++) printf("%d ",fac[i]); puts("");
	for (int i=1; i<=N; i++) printf("%lld\n",ans[i]);
	return 0;
}

Compiler output:
a.cc: In function 'void dfs(int, int)':
a.cc:26:9: error: reference to 'size' is ambiguous
   26 |         size[u] = 1;
      |         ^~~~
In file included from /usr/include/c++/14/string:53,
                 from /usr/include/c++/14/bitset:52,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:52,
                 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:16:5: note:                 'int size [200010]'
   16 | int size[MAXN],size2[MAXN];
      |     ^~~~
a.cc:32:17: error: reference to 'size' is ambiguous
   32 |                 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:16:5: note:                 'int size [200010]'
   16 | int size[MAXN],size2[MAXN];
      |     ^~~~
a.cc:32:28: error: reference to 'size' is ambiguous
   32 |                 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:16:5: note:                 'int size [200010]'
   16 | int size[MAXN],size2[MAXN];
      |     ^~~~
a.cc:35:25: error: reference to 'size' is ambiguous
   35 |         fac[u] = fac[u]*size[u]%MOD;
      |                         ^~~~
/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:16:5: note:                 'int size [200010]'
   16 | int size[MAXN],size2[MAXN];
      |     ^~~~
a.cc: In function 'void dfs2(int, int, long long int)':
a.cc:54:54: error: reference to 'size' is ambiguous
   54 |                 dfs2(v,u,p*qpow(fac[v],MOD-2)%MOD*(N-size[v])%MOD);
      |                                                      ^~~~
/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:16:5: note:                 'int size [200010]'
   16 | int size[MAXN],size2[MAXN];
      |     ^~~~