Cod sursa(job #2297618)

Utilizator MiricaMateiMirica Matei MiricaMatei Data 6 decembrie 2018 09:46:08
Problema Abc2 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#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;
}