Cod sursa(job #1391502)

Utilizator dobrebogdanDobre Bogdan Mihai dobrebogdan Data 17 martie 2015 23:31:09
Problema A+B Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include<cstdio>
#include<vector>
using namespace std;
const int md=666013;
const int pu=666011;
int di[100005],lu[100005],fc[100005];
vector<int> ve[100005];
bool be[100005];
int inv(int x)
{
        if()
}
int co(int n,int k)
{
    return ((fc[n]*inv(fc[n-k]))%md*inv(fc[k]))%md;
}
void dfs(int x)
{
    be[x]=1;
    lu[x]=1;
    int i,n,l;
    l=ve[x].size();
    n=0;
    for(i=l-1;i>=0;i--)
        if(be[ve[x][i]]==0)
    {
        dfs(ve[x][i]);
        lu[x]=(lu[x]+lu[ve[x][i]])%md;
        n=n+lu[ve[x][i]];
    }
    di[x]=1;
    for(i=l-1;i>=0;i--)
    {
        di[x]=di[x]*co(n,n-lu[ve[x][i]]);
        n=n-lu[ve[x][i]];
    }
}
int main()
{
    freopen("arbore4.in","r",stdin);
    freopen("arbore4.out","w",stdout);
    int n,i,j,x,y;
    scanf("%d",&n);
    fc[0]=1;
    for(i=1;i<=n;i++)
    {
        scanf("%d%d",&x,&y);
        ve[x].push_back(y);
        ve[y].push_back(x);
        fc[i]=(fc[i-1]*i)%md;
    }
    dfs(1);
    return 0;
}