Pagini recente » Cod sursa (job #3255580) | Cod sursa (job #209697) | Cod sursa (job #2218491) | Cod sursa (job #869474) | Cod sursa (job #2297618)
#include <bits/stdc++.h>
using namespace std;
const int B = 31;
const int MOD = 1020037;
unordered_map<unsigned int, bool>x;
char s[10000005], c[25];
int main() {
freopen("abc2.in", "r", stdin);
freopen("abc2.out", "w", stdout);
scanf("%s", s);
int l = -1;
while(scanf("%s", c) != EOF) {
if (l == -1)
l = strlen(c);
unsigned int val = 0;
for (int i = 0; i < l; ++i)
val = val * B + c[i] - 'a';
x[val] = 1;
}
int n = strlen(s), ans = 0;
for (int i = 0; i + l - 1 < n; ++i) {
unsigned int val = 0;
for (int j = 0; j < l; ++j)
val = val * B + s[i + j] - 'a';
if (x.find(val) != x.end())
ans++;
}
printf("%d\n", ans);
return 0;
}