Cod sursa(job #2547695)

Utilizator dey44andIoja Andrei-Iosif dey44and Data 15 februarie 2020 16:28:11
Problema Colorare3 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <bits/stdc++.h>

#define input "colorare3.in"
#define output "colorare3.out"
#define MOD 1000000007
#define NMAX 100005

using namespace std;
typedef long long ll;

ifstream in(input);
ofstream out(output);

ll K;
int N, grad[NMAX];

void Read_Data()
{
    in >> N >> K;
    for(int i = 1; i < N; i++)
    {
        int x, y; in >> x >> y;
        grad[x]++, grad[y]++;
    }
}

void Solve()
{
    ll R = 1;
    for(ll i = K - grad[1] + 1; i <= K; i++)
        R = (R * i) % MOD;
    for(int n = 2; n <= N; n++)
        for(ll i = K - grad[n] + 1; i < K; i++)
            R = (R * i) % MOD;
    if(R < 0) R += MOD;
    out << R << "\n";
}

int main()
{
    Read_Data();
    Solve();
    return 0;
}