Cod sursa(job #896550)

Utilizator crazzytudTudor Popa crazzytud Data 27 februarie 2013 16:05:40
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<fstream>
using namespace std;

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

const int MOD = 104659;

int vecin[30][30];
int v[1002][30];
int main()
{
    int n, m, i, j, k, rez=0;
    char a, b, gb;
    in >> n >> m;
    //in >> gb;

    for(i=1; i<=m; i++)
    {
        in >> a >> b; //>> gb;

        vecin[a-'a'+1][b-'a'+1]=true;
        vecin[b-'a'+1][a-'a'+1]=true;
    }

    for(i=1;i<=26;i++)
        v[1][i]=1;

    for(i=1;i<=n-1;i++)
    {
        for(j=1;j<=26;j++)
            if(v[i][j])
            {
                for(k=1; k<=26; ++k)
                    if(vecin[k][j]==false)
                    {
                        v[i+1][k] += v[i][j];
                        v[i+1][k] %= MOD;
                    }
            }
    }
    for(i=1; i<=26; i++)
    {
        rez += v[n][i];
        rez %= MOD;
    }
    out<<rez;
}