Cod sursa(job #926888)

Utilizator timicsIoana Tamas timics Data 25 martie 2013 13:50:34
Problema Lista lui Andrei Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<stdio.h>
int N,M,v[26][26],x,y,legal[26],nr[26],s;
char a,b,c,d;
int main()
{
    freopen("nrcuv.in","r",stdin);
    freopen("nrcuv.out","w",stdout);
    scanf("%d%d",&N,&M);

    for(int i=1;i<=M;++i)
    {
        scanf("%c%c%c%c",&a,&b,&c,&d);
        x=b-'a';
        y=d-'a';
        v[x][y]=1;
        v[y][x]=1;
        //printf("%d %d\n",x,y);

    }

    for(int i=0;i<=25;++i)
    {
        legal[i]=26;
        for(int j=0;j<=25;++j)
            if(v[i][j]==1)
                --legal[i];
    }

    for(int i=0;i<=25;++i)
        nr[i]=1;

    for(int i=2;i<=N;++i)
    {
        for(int j=0;j<=25;++j)
        {
            nr[j]=(nr[j]*legal[j])%104659;
        }
    }

    for(int i=0;i<=25;++i)
        s=(s+nr[i])%104659;

    printf("%d",s);
    return 0;
}