Cod sursa(job #3217257)

Utilizator Theo20067Cismaru Theodor-Alexe Theo20067 Data 21 martie 2024 23:14:54
Problema Abc2 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <fstream>
#include <vector>
#include <algorithm>
#include <cstring>
#include <unordered_map>
#include <set>
using namespace std;
ifstream fin ("abc2.in");
ofstream fout("abc2.out");
int n,j,sol,i,ch;
long long p;
unordered_map <long long,bool> M;
string text,pattern;
int main()
{
    fin>>text;
    while(fin>>pattern)
    {
        long long nr=0;
        ch=pattern.size();
        for(i=0;i<pattern.size();i++)
            nr=nr*3+pattern[i]-'a';
        M[nr]=1;
    }
    p=1;
    for(i=1;i<ch;i++)
        p*=3;
    long long nr=0;
    for(i=0;i<text.size();i++)
    {
        if(i>=ch)
            nr-=(text[i-ch]-'a')*p;
        nr=nr*3+text[i]-'a';
        if(i>=ch-1&&M[nr])
            sol++;
    }
    fout<<sol;
    return 0;
}