Cod sursa(job #3209485)

Utilizator robert_dumitruDumitru Robert Ionut robert_dumitru Data 2 martie 2024 15:47:46
Problema Abc2 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <bits/stdc++.h>
using namespace std;

ifstream fin("abc2.in");
ofstream fout("abc2.out");

int n, m;
string a, b;
unordered_map<int, int> fr;
unordered_map<string, bool> M;

int main()
{
    ios_base :: sync_with_stdio(false);
    fin.tie(0);
    fout.tie(0);

    int i, x, p, cnt;

    fin >> a >> b;
    n = a.length(); m = b.length();

    p = 1;
    for (i = 1; i < m; i++)
        p *= 3;
    x = 0;
    for (i = 0; i < m; i++)
        x = (x * 3 + (a[i] - 'a'));

    fr[x]++;
    for (i = m; i < n; i++)
    {
        x = (x - p * (a[i - m] - 'a'));
        x = (x * 3 + (a[i] - 'a'));
        fr[x]++;
    }

    cnt = 0;
    do
    {
        if (M[b] == false)
        {
            M[b] = true;
            x = 0;
            for (i = 0; i < m; i++)
                x = (x * 3 + (b[i] - 'a'));
            cnt += fr[x];
            fr[x] = 0;
        }

    }while (fin >> b);

    fout << cnt << "\n";
    return 0;
}