Pagini recente » Cod sursa (job #948199) | Cod sursa (job #164199) | Cod sursa (job #314082) | Cod sursa (job #1027127) | Cod sursa (job #466132)
Cod sursa(job #466132)
#include<stdio.h>
#include<vector>
using namespace std;
#define MOD 1000000007
#define ll long long
int viz[100006],ai,n,k;
ll sol;
vector <int> v[100006];
void dfs(int nod)
{
int start,nr=v[nod].size();
if(ai)
start=k-1;
else
{
start=k;
ai=1;
}
for(int i=0;i<nr;i++)
if(!viz[v[nod][i]])
{
sol=sol*start;//k se converteste automat la ll
sol%=MOD;
start--;
viz[v[nod][i]]=1;
dfs(v[nod][i]);
}
}
int main ()
{
int i,a,b;
freopen("colorare3.in","r",stdin);
freopen("colorare3.out","w",stdout);
scanf("%d%d",&n,&k);
for(i=1;i<n;i++)
{
scanf("%d%d",&a,&b);
v[a].push_back(b);
v[b].push_back(a);
}
sol=1;
viz[1]=1;
dfs(1);
printf("%lld\n",sol);
return 0;
}