Cod sursa(job #1706010)

Utilizator dsergiu05Sergiu Druga dsergiu05 Data 21 mai 2016 12:17:37
Problema Lista lui Andrei Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>

using namespace std;

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

const int nmax=1000, sigma=26, mod=104659;
int c[sigma][sigma], d[nmax+1][sigma];

int main () {
    int n, m;
    fin>>n>>m;

    for (int i=1; i<=m; i++) {
        char x, y;
        fin>>x>>y;
        c[x-'a'][y-'a']=1;
        c[y-'a'][x-'a']=1;
    }
    for (int i=0; i<sigma; i++) {
        d[1][i]=1;
    }

    for (int i=1; i<=n; i++) {
        for (int j=0; j<sigma; j++) {
            for (int k=0; k<sigma; k++) {
                if (c[j][k]==0) {
                    d[i+1][k]+=d[i][j];
                    if (d[i+1][k]>=mod) {
                        d[i+1][k]-=mod;
                    }
                }
            }
        }
    }
    int sol=0;
    for (int j=0; j<sigma; j++) {
        if (sol>=mod) {
            sol-=mod;
        }
    }
    fout<<sol<<"\n";
    return 0;
}