Cod sursa(job #1494056)

Utilizator dnprxDan Pracsiu dnprx Data 30 septembrie 2015 17:22:43
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <bits/stdc++.h>
#define MOD 104659

using namespace std;

int dp[1005][26];
int mat[26][26];

int main()
{
    int i, j, k, n, m, cnt;
    char a, b;

    ifstream fin("nrcuv.in");
    fin >> n >> m;
    for(i = 1; i <= m; i++)
    {
        fin >> a >> b;
        mat[a - 'a'][b - 'a'] = mat[b - 'a'][a - 'a'] = 1;
    }
    fin.close();

    for(i = 0; i < 26; i++)
        dp[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] && !mat[k][j])
                    dp[i][j] = (dp[i][j] + dp[i - 1][k]) % MOD;

    cnt = 0;
    for(int i = 0; i < 26; i++)
        cnt = (cnt + dp[n][i]) % MOD;

    ofstream fout("nrcuv.out");
    fout << cnt << "\n";
    fout.close();
    return 0;
}