Pagini recente » Cod sursa (job #14595) | Cod sursa (job #1434652) | Cod sursa (job #1546229) | Cod sursa (job #153190) | Cod sursa (job #3209815)
#include <bits/stdc++.h>
#define P 1234577
#define Q 7770131
using namespace std;
ifstream fin("abc2.in");
ofstream fout("abc2.out");
string a, b;
int n, m, k;
unordered_map<int, int>M;
int main()
{
ios_base::sync_with_stdio(0);
fin.tie(0);
fout.tie(0);
int i, x1, x2, cnt = 0, p, p1;
p = p1 = 1;
fin >> a;
fin.get();
while(fin >> b)
{
x1 = 0;
for(i = 0; i < b.size(); i++)
{
x1 = (x1 * 3 + (b[i] - 'a')) % P;
}
M[x1] = 1;
fin.get();
}
m = b.size();
for(i = 1; i < m; i++)
{
p = (p * 3) % P;
}
x1 = 0;
for(i = 0; i < m; i++)
{
x1 = (x1 * 3 + (a[i] - 'a')) % P;
}
if(M[x1] == 1)cnt++;
for(i = m; i < a.size(); i++)
{
x1 = (x1 - (a[i - m] - 'a') * p % P + P) % P;
x1 = (x1 * 3 + (a[i] - 'a')) % P;
if(M[x1] == 1)cnt++;
}
fout << cnt;
return 0;
}