Pagini recente » Cod sursa (job #466303) | Cod sursa (job #214750) | Borderou de evaluare (job #565527) | Cod sursa (job #401055) | Cod sursa (job #466404)
Cod sursa(job #466404)
#include<stdio.h>
#include<algorithm>
using namespace std;
FILE*f=fopen("colorare3.in","r");
FILE*g=fopen("colorare3.out","w");
int n,k,x,y,v[100005],i,nr;
int cmp(int a,int b){
return a>b;
}
long long combinari(int n,int k){
int i = 0;
long long p = 1;
for ( i = n-k+1; i <= n; ++i )
p = (p * i)%1000000007;
return p;
}
int main () {
fscanf(f,"%d %d",&n,&k);
for ( i = 1 ; i < n ; ++i ){
fscanf(f,"%d %d",&x,&y);
++v[x]; ++v[y];
}
sort(v+1,v+n+1,cmp);
nr = 1;
for ( i = 0; i < n ; ++i ){
if( v[i+1] > i || v[i+1] == 1){
nr = (nr * (combinari(k-i,v[i+1]-i)))%1000000007;
}
else
break;
}
fprintf(g,"%d",nr);
fclose(f);
fclose(g);
return 0;
}