Cod sursa(job #471110)

Utilizator ChallengeMurtaza Alexandru Challenge Data 17 iulie 2010 11:37:26
Problema Colorare3 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>

using namespace std;

const char InFile[]="colorare3.in";
const char OutFile[]="colorare3.out";

const int MaxN=100005;
const int MOD=1000000007;

ifstream fin(InFile);
ofstream fout(OutFile);

int n,k,grad[MaxN],x,y;
long long rez=1;

long long C(int n, int k)
{
	long long rez=1;
	for(register int i=0;i<n;++i)
	{
		rez*=k;
		rez%=MOD;
		--k;
	}
	return rez;
}

int main()
{
	fin>>n>>k;
	for(register int i=0;i<n;++i)
	{
		fin>>x>>y;
		++grad[y];++grad[x];
	}
	fin.close();
	
	rez*=C(grad[1],k);
	rez%=MOD;
	for(register int i=2;i<n;++i)
	{
		rez*=C(grad[i]-1,k-1);
		rez%=MOD;
	}

	fout<<rez;
	fout.close();
	return 0;
}