Cod sursa(job #2219804)

Utilizator GiihuoTihufiNeacsu Stefan GiihuoTihufi Data 9 iulie 2018 19:05:29
Problema Abc2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("abc2.in");
ofstream g("abc2.out");

const int hN = 9973;

vector<int> H[hN];

uint64_t h(string s)
{
    uint64_t b3=0;
    for(uint32_t i=0;i<s.length();i++)
        b3=b3*3+s[i]-'a';
    return b3;
}

bool found(int _h)
{
    int __h=_h%hN;
    for(auto i:H[__h])
        if(i==_h) return true;
    return false;
}

int main()
{
    string S;
    f>>S;
    int L;
    string s;
    while(f>>s)
    {
        int _h=h(s);
        if(!found(_h)) H[_h%hN].push_back(_h);
    }
    L=s.size();
    string seq;
    seq.resize(L);
    copy(S.begin(),S.begin()+L,seq.begin());
    int result=found(h(seq));
    for(uint32_t i=L;i<S.size();i++)
    {
        seq.erase(seq.begin());
        seq+=S[i];
        result+=found(h(seq));
    }
    g<<result;
    return 0;
}