Cod sursa(job #1719939)

Utilizator danstefanDamian Dan Stefan danstefan Data 20 iunie 2016 18:47:52
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>
#define MOD 104659
using namespace std;
int n,m,i,s[1010][150],ans,in,j;
char x,y;
bool allowed[150][150];
int main()
{
    freopen("nrcuv.in","r",stdin);
    freopen("nrcuv.out","w",stdout);
    scanf("%d%d",&n,&m);
    for(i=1; i<=m; ++i)
    {
        scanf("\n");
        scanf("%c %c",&x,&y);
        allowed[x][y]=1;
        allowed[y][x]=1;
    }
    for(i='a'; i<='z'; ++i)s[1][i]=1;
    for(in=2; in<=n; ++in)
        for(i='a'; i<='z'; ++i)
        {
            for(j='a'; j<='z'; ++j)
                if(!allowed[i][j])s[in][i]+=s[in-1][j];
            s[in][i]%=MOD;
        }
    for(i='a'; i<='z'; ++i)
        ans+=s[n][i];
    printf("%d\n",ans%MOD);
    return 0;
}