Pagini recente » Istoria paginii runda/1_martie_simulare_oji_2024_clasele_11_12/clasament | Cod sursa (job #224086) | Istoria paginii runda/oji_2020_cls10 | Cod sursa (job #122783) | Cod sursa (job #2831056)
#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;
}