Cod sursa(job #2831060)

Utilizator PsyDuck1914Feraru Rares-Serban PsyDuck1914 Data 10 ianuarie 2022 19:32:49
Problema Abc2 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
#include <iostream>
#include <bitset>

using namespace std;

ifstream f ("abc2.in");
ofstream g ("abc2.out");

const int NL = 3;

int
codul (string & s, int n, int l)
{
  int p3 = 1;
  for (int i = 0; i < l; i++)
    {
      p3 *= NL;
    }
  bitset < NL * NL * NL > c;
  p3 /= NL;
  int cod = 0;
  for (int i = 0; i < n && i < l - 1; i++)
    {
      cod = cod * NL + (s[i] - 'a');
    }
  for (int i = l - 1; i < n; i++)
    {
      cod = cod % p3 * NL + (s[i] - 'a');
      c[cod] = 1;
    }
  int rez = -1;
  p3 *= NL;
  for (int i = 0; i < p3; i++)
    {
      if (!c[i])
	{
	  return i;
	}
    }
  return -1;
}

int
main ()
{
  string s;
  f >> s;
  string a;
  int c=0;
  while (f >> a)
    {
      int lung = 1, rez = codul (a, a.size(), lung);
      while (rez == -1)
	{
	  lung++;
	  rez = codul (a, a.size(), lung);
	}
      c+=rez;
    }

g<<c;
  return 0;
}