Pagini recente » Cod sursa (job #101223) | Cod sursa (job #2609541) | Cod sursa (job #1904148) | Cod sursa (job #3276821) | Cod sursa (job #2294642)
#include <stdio.h>
#include <string>
#include <string.h>
#include <unordered_map>
using namespace std;
char text[10000002];
int main() {
freopen("abc2.in", "r", stdin);
freopen("abc2.out", "w", stdout);
unordered_map <string, bool> h;
char cuvinte[50000][22];
int nr_cuv = 0, lung_cuv, lung_text;
long long int sol = 0;
fgets(text, 10000002, stdin);
lung_text = strlen(text);
while (scanf("%s", &cuvinte[nr_cuv]) == 1) {
h[cuvinte[nr_cuv]] = true;
nr_cuv++;
}
lung_cuv = strlen(cuvinte[0]);
string t(text);
string cuv = t.substr(0, lung_cuv);
if (h.find(cuv) != h.end())
sol++;
for (int i = 1; i < lung_text - lung_cuv; i++) {
cuv.erase(0, 1);
cuv.push_back(text[i + lung_cuv - 1]);
if (h.find(cuv) != h.end())
sol++;
}
printf("%lld", sol);
return 0;
}