Cod sursa(job #2636286)

Utilizator iulianarsenoiuArsenoiu Iulian iulianarsenoiu Data 17 iulie 2020 14:20:22
Problema Abc2 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("abc2.in");
ofstream g("abc2.out");
const int Mod = 666013;
int fr[Mod+5];
int main()
{
    string s,a;
    getline(f,s);
    int n=0;
    while(getline(f,a))
    {
        n=a.size();
        int hes=0;
        for(auto it : a)
        {
            hes=(hes*27+it-'a')%Mod;
        }
        fr[hes]++;
    }
    int hes=0,nr=0,put=1;
    for(int i=0;i<n;i++)
    {
        hes=(hes*27+s[i]-'a')%Mod;
        if(i>0)
        {
            put=(put*27)%Mod;
        }
    }
    if(fr[hes])
    {
        ++nr;
    }
    for(int i=n;i<s.size();i++)
    {
        hes=(1LL*((hes-1LL*put*(s[i-n]-'a')+Mod)%Mod)*27+s[i]-'a')%Mod;
        if(fr[hes])
        {
            ++nr;
        }
    }
    g<<nr<<'\n';
    return 0;
}