Cod sursa(job #2667013)

Utilizator davidenko22Stancu David-Andrei davidenko22 Data 2 noiembrie 2020 19:11:47
Problema Lista lui Andrei Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>

using namespace std;

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

const int N = 1001;
const int MOD = 104659;

int dp[N][26], mat[26][26];

int main()
{
    int n, m, s;
    char a, b;
    in >> n >> m;
    for ( int i = 0; i < 26; i++ ) {
      dp[1][i] = 1;
    }
    for ( int i = 1; i <= m; i++ ) {
      in >> a >> b;
      mat[a - 'a'][b - 'a'] = mat[b - 'a'][a - 'a'] = 1;
    }
    for ( int i = 2; i <= n; i++ ) {
      for ( int j = 0; j < 26; j++ ) {
        s = 0;
        for ( int k = 0; k < 26; k++ ) {
          if ( mat[j][k] == 0 )
            s += dp[i - 1][k];
        }
        dp[i][j] = s % MOD;
      }
    }
    s = 0;
    for ( int i = 0; i < 26; i++ ) {
      s += dp[n][i];
    }
    out << s % MOD;
    return 0;
}