Pagini recente » Cod sursa (job #2885462) | Cod sursa (job #1425743) | Cod sursa (job #1638352) | Cod sursa (job #890469) | Cod sursa (job #552612)
Cod sursa(job #552612)
#include <stdio.h>
#include <vector>
using namespace std;
#define maxn 100010
#define mod 1000000007
long n, i, j, k, a, b, gr[maxn], a1[maxn], a2[maxn];
long sol;
int main()
{
freopen("colorare3.in", "r", stdin);
freopen("colorare3.out", "w", stdout);
scanf("%d%d", &n, &k);
a1[0]=a2[0]=1;
for(i=1; i<=n; i++)
{
if(i<=k)
a1[i]=(1LL*a1[i-1]*(k-i+1))%mod;
else
a1[i]=a1[i-1];
if(i<k)
a2[i]=(1LL*a2[i-1]*(k-i))%mod;
else
a2[i]=a2[i-1];
}
for(i=1; i<n; i++)
{
scanf("%d%d", &a, &b);
gr[a]++;
gr[b]++;
}
sol=a1[gr[1]];
for(i=2; i<=n; i++)
{
sol=(1LL*sol*a2[gr[i]-1])%mod;
}
for(i=1; i<=n; i++)
if(gr[i]>k)
sol=0;
printf("%d\n", sol);
return 0;
}