Cod sursa(job #2240673)

Utilizator gabimoiseMoise Gabriel gabimoise Data 13 septembrie 2018 20:40:35
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <iostream>
#include <fstream>
#include <cstring>

#define M 104659

using namespace std;

char x,y;
long long s;
long n,m,i,j,k;
char a[30][30];
long long b[50][1010];

int main()
{
    ifstream cin("nrcuv.in");
    ofstream cout("nrcuv.out");
    cin>>n>>m;
    for (i=1;i<=m;i++)
    {
        cin>>x>>y;
        a[x-'a'+1][y-'a'+1]=1;
        a[y-'a'+1][x-'a'+1]=1;
    }
    for (i=1;i<=26;i++) b[i][1]=1;
    for (j=2;j<=n;j++)
        for (i=1;i<=26;i++)
            for (k=1;k<=26;k++)
                if (a[i][k]==0) b[i][j]=(b[i][j]+b[k][j-1])%M;
    s=0;
    for (i=1;i<=26;i++) s=(s+b[i][n])%M;
    cout<<s<<endl;
    return 0;
}