Cod sursa(job #1025914)

Utilizator laurageorgescuLaura Georgescu laurageorgescu Data 10 noiembrie 2013 19:50:04
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include<fstream>
using namespace std;
bool v[26][26];
int d[2][26];
void init()
{
    for (int i=0;i<26;++i)
        for(int j=0;j<26;++j)
            v[i][j]=0;
    for (int i=0;i<26;++i)
        d[0][i]=1;
}
int main()
{
    ifstream in ("nrcuv.in");
    ofstream out ("nrcuv.out");
    int n,m,s;
    char a,b,c;
    in>>n>>m;
    init();
    in.get(c);
    for (int i=0;i<m;++i)
        {
        in.get(a);
        in.get(c);
        in.get(b);
        v[a-'a'][b-'a']=v[b-'a'][a-'a']=1;
        in.get(c);
        }
    for (int l=2;l<=n;++l)
        {
        for (int j=0;j<26;++j)
            {
            d[1][j]=0;
            for (int k=0;k<26;++k)
                if (!v[j][k] && !v[k][j])
                    d[1][j]=(d[1][j]+d[0][k])%104659;
            }
        for (int j=0;j<26;++j)
            d[0][j]=d[1][j];
        }
    s=0;
    for (int i=0;i<26;++i)
        s=(s+d[0][i])%104659;
    out<<s<<'\n';
    in.close();
    out.close();
    return 0;
}