Cod sursa(job #1816352)

Utilizator PondorastiAlex Turcanu Pondorasti Data 26 noiembrie 2016 13:10:23
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <iostream>
#include <fstream>
using namespace std;
const int CMAX=26;
int v[1005][CMAX+5],n,m,s;
bool c[CMAX+5][CMAX+5];
char c1,c2;
int main()
{
    ifstream cin("nrcuv.in");
    ofstream cout("nrcuv.out");
    cin>>n>>m;
    for(int i=1;i<=m;i++) {
        cin>>c1>>c2;
        c[c1-'a'+1][c2-'a'+1]=true;
        c[c2-'a'+1][c1-'a'+1]=true;}
    for(int i=1;i<=CMAX;++i)
        v[1][i]=1;
    for(int l=1;l<=n;l++) {
        for(int i=1;i<=CMAX;i++) {
            for(int j=1;j<=CMAX;j++) {
                if(c[i][j]==false)
                    v[l][i]=(v[l][i]+v[l-1][j])%104659;}}}
    for(int i=1;i<=CMAX;++i)
        s=(s+v[n][i])%104659;
    cout<<s;
    return 0;
}