Cod sursa(job #2253634)

Utilizator MiricaMateiMirica Matei MiricaMatei Data 4 octombrie 2018 11:05:01
Problema Colorare3 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <bits/stdc++.h>

using namespace std;

const int MAXN = 100000;
const int MOD = 1.e9 + 7;

int gr[MAXN + 5];

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

  int n, k;
  scanf("%d%d", &n, &k);
  for (int i = 1; i < n; ++i) {
    int x, y;
    scanf("%d%d", &x, &y);
    gr[x]++;
    gr[y]++;
  }

  int ans = 1;
  for (int i = 1; i <= gr[1]; ++i)
    ans = 1LL * ans * (k - i + 1) % MOD;
  for (int i = 2; i <= n; ++i)
    for (int j = 1; j < gr[i]; ++j)
      ans = 1LL * ans * (k - j) % MOD;

  printf("%d\n", ans);
  return 0;
}