Pagini recente » Cod sursa (job #653422) | Cod sursa (job #1607126) | Cod sursa (job #985827) | Cod sursa (job #332416) | Cod sursa (job #2831060)
#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;
}