Cod sursa(job #552095)

Utilizator darrenRares Buhai darren Data 11 martie 2011 17:14:04
Problema Colorare3 Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<fstream>
#include<list>
using namespace std;

const int MOD = 1000000007;

int N, K;
long long result = 1;
int grad[100002];

long long Fact(int i1, int i2)
{
    long long now = 1;
    for (int i = i1; i <= i2; ++i)
        now *= i, now %= MOD;
    return now;
}

int main()
{
	ifstream fin("colorare3.in");
	ofstream fout("colorare3.out");

	fin >> N >> K;
	for (int i = 1, ax1, ax2; i < N; ++i)
	{
		fin >> ax1 >> ax2;
		++grad[ax1], ++grad[ax2];
	}

	for (int i = 1; i <= N; ++i)
	{
        result *= Fact(K - grad[i] + 1, K - 1); // A(K - 1, grad[i])
        result %= MOD;
	}

	result *= K;

	fout << result;
}