Cod sursa(job #1903128)

Utilizator SirbuSirbu Ioan Sirbu Data 4 martie 2017 23:42:18
Problema Lista lui Andrei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#define mod 104659
using namespace std;
ifstream fin ("nrcuv.in");
ofstream fout ("nrcuv.out");

bool interzis[30][30];
int v[1002][30];

int main (){

  for (int i = 1; i <= 26; ++i)
    v[1][i] = 1;

   int n,m;
   char x,y;
  fin >> n >> m;
  for (int i = 1; i <= m; ++i){
    fin >> x >> y;
    interzis[x-'`'][y-'`'] = 1;
    interzis[y-'`'][x-'`'] = 1;
  }


  for (int i = 2; i <= n; ++i){
    for (int j = 1; j <= 26; ++j)
      for (int k = 1; k <= 26; ++k)
        if (!interzis[j][k] && !interzis[k][j])
          v[i][j] = (v[i][j] + v[i-1][k])%mod;
  }
  int sumfinal = 0;
  for (int i = 1; i <= 26; ++i)
    sumfinal = (sumfinal + v[n][i])%mod;
  fout << sumfinal;
}


/// ``````````````````````````````