Cod sursa(job #479402)

Utilizator mihai_floreaFlorea Mihai Alexandru mihai_florea Data 23 august 2010 21:14:19
Problema Colorare3 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <fstream>
using namespace std;

const int MOD=1000000007;
const int NMAX=100001;

typedef long long i64;

int N,K,deg[NMAX];
i64 aranj[2][NMAX];

int main()
{
	int i,j,k;
	ifstream fin("colorare3.in");
	fin>>N>>K;
	for (k=1;k<=N-1;++k)
	{
		fin>>i>>j;
		++deg[i];++deg[j];
	}

	for (k=0;k<2;++k)
	{
		int n=K-k;
		aranj[k][0]=1;
		for (i=1;i<=N-1 && i<=n;++i)
			aranj[k][i]=(aranj[k][i-1]*(n-i+1))%MOD;
	}

	ofstream fout("colorare3.out");
	i64 sol=1;
	for (i=2;i<=N;++i) sol=(sol*aranj[1][deg[i]-1])%MOD;
	sol=(sol*aranj[0][deg[1]])%MOD;
	fout<<sol<<"\n";

	return 0;
}