Pagini recente » Cod sursa (job #2129433) | Cod sursa (job #3152047) | Cod sursa (job #1541702) | Cod sursa (job #2512402) | Cod sursa (job #1660711)
#include<fstream>
#include<string>
#include<map>
#include<string.h>
#include<iostream>
using namespace std;
ifstream in("abc2.in");
ofstream out("abc2.out");
char S[10000000];
char s1[22];
long long pow1[20];
map<long long, int> m;
int main()
{
in >> S;
long long p = 1;
for (int i = 0; i < 20; ++i)
pow1[i] = p, p *= 3;
int ok = 0 , size = 0;
while (in >> s1)
{
int i = 0;
long long s = 0;
while (s1[i] != '\0')
s += (s1[i] - 'a')*pow1[i], ++i;
m[s] = 1;
if (!ok)
size = strlen(s1);
cout << s << " ";
}
int i = 0,nr=0;
long long s = 0;
for (; i < size; ++i)
s += (S[i] - 'a')*pow1[i];
if (m[s])
++nr;
while (S[i] != '\0')
{
s /= 3;
s += (S[i]-'a')*pow1[size-1];
if (m[s])
++nr;
++i;
}
out << nr;
return 0;
}