Cod sursa(job #1601284)

Utilizator teodoramusatoiuTeodora Musatoiu teodoramusatoiu Data 15 februarie 2016 20:46:34
Problema Lista lui Andrei Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream in ("nrcuv.in");
ofstream out ("nrcuv.out");

int n,m,nr[1005][28],mat[27][27];

//abcdefghijklmnopqrstuvwxyz-->26
//nr[i][k] -numarul de cuvinte cu i litere care se termina cu a ja litera

int main()
{
    int i,j,sum=0,k;
    char a, b;
    in>>n>>m>>ws;
    for(i=1; i<=m; i++)
    {
        in>>a>>ws>>b>>ws;
        mat[a-'a'][b-'a']=mat[b-'a'][a-'a']=1;
    }
    /*for(j=0; j<26; j++)
    {
        for(k=0; k<26; k++)
            out<<mat[j][k]<<" ";
        out<<'\n';
    }*/
    for(i=0; i<26; i++)
        nr[1][i]=1;
    for(i=2; i<=n; i++)
        for(j=0; j<26; j++)
            for(k=0; k<26; k++)
                if(!mat[j][k])
                    nr[i][j]=(nr[i][j]+nr[i-1][k])%104659;
    for(i=0; i<26; i++)
        sum+=nr[n][i]%104659;
    out<<sum;
    return 0;
}