Cod sursa(job #466445)

Utilizator miculprogramatorA Cosmina - vechi miculprogramator Data 26 iunie 2010 17:31:06
Problema Colorare3 Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <stdio.h>
#include <vector>
using namespace std;

#define MOD 1000000007

int apar[100001];
long int x, y;
long int n;
long int i, j;
long long k;
long long posibilitati = 1;

long long  factorial (long int x)
{
    long long fact = 1;
    for (j=1; j<=x; ++j)
    {
        fact *= j;
    }
    return fact;
}

int main ()
{
    FILE *f = fopen ("colorare3.in","r");
    FILE *g = fopen ("colorare3.out","w");
    fscanf (f,"%ld %lld", &n, &k);

    for (i=1; i<n; ++i)
    {
        fscanf (f,"%ld %ld", &x, &y);
        apar[x] ++;
        apar[y] ++;
    }
    vector <int> ap (apar, apar + n);
    vector <int> :: iterator it;
    it = ap.begin() + 1;

    for (it=ap.begin() + 1; it<ap.end(); ++it)
    {
        //printf ("din %d pleaca %d drumuri\n", i, ap[i]);
        posibilitati *= factorial(*it);
        posibilitati %= MOD;
    }

    fprintf (g,"%lld", posibilitati % MOD);

    fclose(g);
    fclose(f);
    return 0;
}