Cod sursa(job #347570)

Utilizator freak93Adrian Budau freak93 Data 12 septembrie 2009 19:20:46
Problema Lista lui Andrei Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include<cstdio>
#include<cstring>

using namespace std;

const char iname[]="nrcuv.in";
const char oname[]="nrcuv.out";
const int maxl=200;
const int maxn=1005;
const int mod=104659;

int n,m,i,j,k;

char x,y;

int nb[maxl][maxl],a[maxn][maxl];

int main()
{
    freopen(iname,"r",stdin);
    freopen(oname,"w",stdout);

    scanf("%d %d\n",&n,&m);
    for(i=1;i<=m;++i)
    {
        scanf("%c %c\n",&x,&y);
        nb[x][y]=nb[y][x]=1;
    }

    for(i='a';i<='z';++i)
        a[1][i]=1;

    for(i=2;i<=n;++i)
        for(j='a';j<='z';++j)
            for(k='a';k<='z';++k)
                if(nb[j][k]==0)
                {
                    a[i][j]+=a[i-1][k];
                    if(a[i][j]>mod)
                        a[i][j]-=mod;
                }

    for(i='b';i<='z';++i)
        a[n]['a']+=a[n][i];

    printf("%d\n",a[n]['a']);

    fclose(stdin);
    fclose(stdout);

    return 0;
}