Cod sursa(job #1809816)

Utilizator GoogalAbabei Daniel Googal Data 19 noiembrie 2016 12:20:47
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
#define mmax 2001
#define al 27
#define modal 104659

using namespace std;

ifstream fin("nrcuv.in");
ofstream fout("nrcuv.out");

int n,m,d[mmax][al],rez;
bool a[al][al];
char x,y;

inline void read()
{
    fin>>n>>m;
    for(int i=1; i<=m; i++)
    {
        fin>>x>>y;
        a[x-'a'+1][y-'a'+1]=true;
        a[y-'a'+1][x-'a'+1]=true;
    }
}

inline void solve()
{
    int i,j,h;
    for(i=1; i<=26; i++)
    {
        d[1][i]=1;
    }
    for(int i=2; i<=n; i++)
    {
        for(j=1; j<27; j++)
        {
            for(h=1; h<27; h++)
            {
                if(a[j][h]==false)
                {
                    d[i][h]+=d[i-1][j];
                    d[i][h]%=modal;
                }
            }
        }
    }
    for(i=1; i<=26; i++)
    {
        rez+=d[n][i];
        rez%=modal;
    }
    fout<<rez;
}

int main()
{
    read();
    solve();
    return 0;
}