Cod sursa(job #466483)

Utilizator edp100Edp100 edp100 Data 26 iunie 2010 19:14:48
Problema Colorare3 Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<stdio.h>

#define MOD 1000000007
#define ll long long

int viz[100006],n,k;
ll sol;

int main ()
{
    int i,a,b;
    ll r;
    freopen("colorare3.in","r",stdin);
    freopen("colorare3.out","w",stdout);
    scanf("%d%d",&n,&k);
    sol=k;
    for(i=1;i<n && sol;i++)
    {
        scanf("%d%d",&a,&b);
        if(i==1)
        {
            viz[a]++;viz[b]++;
            continue;
        }
        r=k-viz[a];
        if(r>k-viz[b])
            r=k-viz[b];
        if(r==k)
            r--;
        sol*=r;
        sol%=MOD;
        viz[a]++;viz[b]++;
    }
    printf("%lld\n",sol);
    return 0;
}