Cod sursa(job #1024148)

Utilizator iuliusVasilescu Iulius iulius Data 8 noiembrie 2013 12:10:32
Problema Lista lui Andrei Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <cstdio>

int v[29][1010];
bool ok[29][29];
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);
    for(i=1;i<=m;i++)
    {
        fscanf(in,"\n%c %c",&a,&b);
        ok[a-'a'+1][b-'a'+1]=1;
        ok[b-'a'+1][a-'a'+1]=1;
    }
    for(i=1;i<=26;i++)
    {
        v[1][i]=1;
    }
    for(i=2;i<=n;i++)
        for(j=1;j<=26;j++)
        {
            for(k=1;k<=26;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;
}