Cod sursa(job #2593212)

Utilizator iancupoppPopp Iancu Alexandru iancupopp Data 3 aprilie 2020 11:51:01
Problema Lista lui Andrei Scor 15
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");

bool vc [26] [26];
int nr [1001] [26];
const int VM = 104659;

int main() {
  int n, p, rez;
  char a, b;
  in >> n >> p;
  for (int i = 1; i <= p; i ++) {
    in >> a >> b;
    vc [a - 'a'] [b - 'a'] = true;
    vc [b - 'a'] [a - 'a'] = true;
  }
  for (int i = 0; i <= 26; i ++)
      nr [1] [i] = 1;
  for (int i = 2; i <= n; i ++)
    for (int j = 0; j <= 25; j ++)
      for (int k = 0; k <= 25; k ++) {
        if (!vc [j] [k])
          nr [i] [j] += nr [i - 1] [k];
        if (nr [i] [j] >= VM)
          nr [i] [j] -= VM;
      }
  rez = 0;
  for (int i = 0; i <= 25; i ++) {
    rez += nr [n] [i];
    if (rez >= VM)
      rez -= VM;
  }
  out << rez;
  return 0;
}