Cod sursa(job #944773)

Utilizator thewildnathNathan Wildenberg thewildnath Data 29 aprilie 2013 18:39:51
Problema Lista lui Andrei Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<stdio.h>
int v[26][26],s[2][26];

int main()
{
    freopen("nrcuv.in","r",stdin);
    freopen("nrcuv.out","w",stdout);
    int n,m,i,j,k,sol=0,lin=1;
    char a,b;
    scanf("%d%d",&n,&m);
    for(i=1;i<=m;i++)
    {
        scanf("\n%c %c",&a,&b);
        a=a-'a';b=b-'a';
        v[a][b]=v[b][a]=1;
    }
    for(j=0;j<26;j++)
        s[0][j]=1;
    for(i=2;i<=n;i++)
    {
        for(j=0;j<26;j++)
        {
            for(k=0;k<26;k++)
                if(v[k][j]==0)
                {
                    s[lin][j]+=s[1-lin][k];
                    if(s[lin][j]>104659)
                        s[lin][j]-=104659;
                }
        }
        lin=1-lin;
    }
    for(j=0;j<26;j++)
        sol+=s[1-lin][j];
    sol=sol%104659;
    printf("%d\n",sol);
    return 0;
}