Pagini recente » Cod sursa (job #2611135) | Cod sursa (job #2485457) | Cod sursa (job #2507882) | Cod sursa (job #3266326) | Cod sursa (job #3209395)
#include <bits/stdc++.h>
#define int long long
using namespace std;
ifstream fin("abc2.in");
ofstream fout("abc2.out");
string s, s2;
int pow3[25], n, sol;
unordered_map <int, int> M;
int32_t main()
{
int i, cod;
pow3[0] = 1;
for (i = 1; i <= 20; i++)
pow3[i] = pow3[i - 1] * 4;
fin >> s;
s = "&" + s;
while (fin >> s2)
{
cod = 0;
n = s2.size();
s2 = "%" + s2;
for (i = 1; i <= n; i++)
cod = cod * 4 + s2[i] - 'a' + 1;
M[cod] = 1;
}
cod = 0;
for (i = 1; i <= n; i++)
cod = (cod * 4 + s[i] - 'a' + 1);
sol += M[cod];
for (i = n + 1; s[i]; i++)
{
cod = (cod - (s[i - n] - 'a' + 1) * pow3[n - 1]) * 4 + s[i] - 'a' + 1;
sol += M[cod];
}
fout << sol << "\n";
return 0;
}