Cod sursa(job #1476189)

Utilizator stefanzzzStefan Popa stefanzzz Data 24 august 2015 16:33:45
Problema Colorare3 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <stdio.h>
#include <vector>
#define MAXN 100005
#define mod 1000000007
using namespace std;

int n, k, x, y, ans = 1, d[MAXN];
vector<int> G[MAXN];

void DFS(int u, int p) {
    for(auto x: G[u])
        if(x != p) {
            ans = (1LL * ans * (k - d[u])) % mod;
            ++d[u], ++d[x];
            DFS(x, u);
        }
}

int main()
{
    freopen("colorare3.in", "r", stdin);
    freopen("colorare3.out", "w", stdout);

    scanf("%d %d", &n, &k);
    for(int i = 1; i < n; i++) {
        scanf("%d %d", &x, &y);
        G[x].push_back(y);
        G[y].push_back(x);
    }
    DFS(1, 0);
    printf("%d\n", ans % mod);

    return 0;
}