Pagini recente » Cod sursa (job #1061235) | Cod sursa (job #2515261) | Cod sursa (job #1000804) | Cod sursa (job #2745624) | Cod sursa (job #466416)
Cod sursa(job #466416)
#include <cassert>
#include <cstdio>
const int MOD = 1000000007;
const int MAX_N = 100005;
int n;
long long k;
int deg[MAX_N];
int main() {
assert(freopen("colorare3.in", "r", stdin) != NULL);
assert(freopen("colorare3.out", "w", stdout) != NULL);
assert(scanf("%d %lld", &n, &k) == 2);
assert(1 <= n && n <= 100000);
assert(1 <= k && k <= 1000000000);
for (int i = 1; i < n; ++i) {
int a, b;
assert(scanf("%d %d", &a, &b) == 2);
++deg[a]; ++deg[b];
}
long long sol = 1;
for (int i = 1; i <= n; ++i)
for (int j = (i == 1 ? 0 : 1); j < deg[i]; ++j)
sol = sol * (k - j) % MOD;
printf("%lld\n", sol);
}