Cod sursa(job #509631)

Utilizator loginLogin Iustin Anca login Data 11 decembrie 2010 15:04:50
Problema Colorare3 Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
# 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;
}