Cod sursa(job #1683879)

Utilizator cordun_cristinaCristina Maria Cordun cordun_cristina Data 10 aprilie 2016 17:06:04
Problema Lista lui Andrei Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <fstream>

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

const int Nmax = 30;
int n, m, s[Nmax][Nmax], DP[Nmax][Nmax];
char a,b;

int main()
{
    f>>n>>m;
    while(m--)
    {
        f>>a>>b;
        s[a-'a'+1][b-'a'+1] = 1;
        s[b-'a'+1][a-'a'+1] = 1;
    }
    for(int i = 1; i <= 26; i++) DP[1][i] = 1;
    for(int i = 2; i <= n; i++)
    {
        for(int j = 1; j <= 26; j++)
        {
            for(int l = 1; l <= 26; l++)
            {
                if(s[j][l] == 0)
                {
                    DP[i][l] += DP[i-1][j];
                }
            }
        }
    }
    int sum = 0;
    for(int i = 1; i <= 26; i++) sum+=DP[n][i];
    g<<sum<<'\n';
    return 0;
}