Pagini recente » Cod sursa (job #2844932) | Cod sursa (job #1388628) | Rating Coroian Sebastian (escapeMCro) | Cod sursa (job #1948037) | Cod sursa (job #509631)
Cod sursa(job #509631)
# include <fstream>
# include <iostream>
# include <vector>
# include <algorithm>
# define DIM 100003
# define P 1000000007
using namespace std;
int n, K, t[DIM], f[DIM];
long long sol=1;
vector<int>G[DIM];
void read ()
{
ifstream fin ("colorare3.in");
fin>>n>>K;
int x, y;
for(int i=1;i<n;++i)
{
fin>>x>>y;
G[x].push_back(y);
G[y].push_back(x);
}
}
void DF (int k)
{
for(vector<int>::iterator I=G[k].begin();I<G[k].end();++I)
if (!t[*I])
{
f[*I]=K-t[k];
if (k!=1)--f[*I];
++t[k];
DF(*I);
}
if (k!=1)sol=(sol*f[k])%P;
}
void solve ()
{
DF(1);
ofstream fout ("colorare3.out");
fout<<sol;
}
int main ()
{
read ();
solve();
return 0;
}