Cod sursa(job #1024158)

Utilizator iuliusVasilescu Iulius iulius Data 8 noiembrie 2013 12:23:11
Problema Lista lui Andrei Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <cstdio>

int v[27][1010];
bool ok[27][27];
int main()
{
    FILE *in,*out;
    in=fopen("nrcuv.in","r");
    out=fopen("nrcuv.out","w");
    int n,m,i,j,s=0,k;
    char a,b;
    fscanf(in,"%d%d",&n,&m);
    while(m--)
    {
        fscanf(in,"\n%c %c",&a,&b);
        ok[a-'a'][b-'a']=1;
        ok[b-'a'][a-'a']=1;
    }
    for(i=1;i<=26;i++)
    {
        v[1][i]=1;
    }
    for(i=2;i<=n;i++)
        for(j=0;j<27;j++)
        {
            for(k=0;k<27;k++)
            if(ok[k][j]==0) v[i][j]= ( v[i][j] + v[i-1][k] ) % 104659;
        }
    for(i=1;i<=26;i++)
    {
        s=(s+v[n][i])%104659;
    }
    fprintf(out,"%d",s);
    return 0;
}