Cod sursa(job #1901667)

Utilizator StepHoria Stefan Step Data 4 martie 2017 10:15:40
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("nrcuv.in");
ofstream g("nrcuv.out");
int n,m,nr[1001][26];
const int N=104659;
bool comp[26][26];
int main ()
{
    int i,j,s=0;
    char a,b;
    f>>n>>m;
    if (n==1)
    {
        g<<26;
        return 0;
    }
    for (i=1; i<=m; i++)
    {
        f>>(a);
        f>>(b);
        comp[a-97][b-97]=comp[b-97][a-97]=true;
    }
    for (i=0; i<26; i++)
    {
        nr[1][i]=1;
    }
    for (i=2; i<=n; i++)
        for (j=0; j<26; j++)
            for (int k=0; k<26; k++)
                if (comp[k][j]==false)
                {
                    nr[i][j]+=nr[i-1][k];
                    nr[i][j]%=N;
                }
    for (j=0; j<26; j++)
        s=(s+nr[n][j])%N;
    g<<s;
    return 0;
}