Cod sursa(job #3334627)

Utilizator Err0rSome Error Err0r Data 18 ianuarie 2026 18:20:19
Problema Lista lui Andrei Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <fstream>
#include <climits>
#include <algorithm>
#include <cstring>
using namespace std;

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

int main()
{
   ////declarare
   int a[32][1005], n, m, i, perechi[32][32], s = 0;
   char aux, aux2; // a=0,b=1....

   /// initializare
   for (i = 0; i < 26; i++)
   {
      for (int j = 0; j < 26; j++)
         perechi[i][j] = 0;
      a[i][1] = 1;
      a[i][0] = 0;
   }

   // citire
   cin >> n >> m;
   for (i = 0; i < m; i++)
   {
      cin >> aux >> aux2;
      perechi[aux - 97][aux2 - 97] = 1;
   }

   // algoritm
   for (i = 2; i <= n; i++)
   {
      for (int l = 0; l <= 25; l++)
      {
         a[l][i] = 0;
         for (int lit = 0; lit <= 25; lit++)
         {
            if (perechi[lit][l] == 0 && perechi[l][lit] == 0)
            {
               a[l][i] = (a[l][i]%104659 + a[lit][i - 1]%104659)%104659;
            }
         }
      }
   }

   // calc suma
   for (i = 0; i <= 25; i++)
   {
      s = (s%104659 + a[i][n]%104659)%104659;
   }


   // afisare
   cout << s;
}

/////use for debbuging
/* for (i=0;i<32;i++){
   for (int j=0;j<32;j++)
 cout << perechi [i][j]<< " ";
  cout << endl;
} */