Cod sursa(job #2294642)

Utilizator CristyXtremeSimion Cristian CristyXtreme Data 2 decembrie 2018 17:16:53
Problema Abc2 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#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;
}