Cod sursa(job #3122635)

Utilizator NutaAlexandruASN49K NutaAlexandru Data 19 aprilie 2023 19:36:14
Problema Abc2 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.18 kb
#include <fstream>
#include <algorithm>
#include <vector>
#include <cassert>
#include <cmath>
#include <stack>
#include <set>
#include <functional>
#include <queue>
#include <cctype>
using namespace std;
#define int uint64_t
const uint32_t mod=999983;
ifstream cin("abc2.in");
ofstream cout("abc2.out");
void solve()
{
	string s;
	cin>>s;
	string aux;
	int m=0;
	vector<vector<uint32_t>>cash(mod);
	set<int64_t>mp;
    while(cin>>aux)
    {
        m=int(aux.size());
        int64_t x=0;
        for(auto &c:aux)
        {
            x*=3;
            x+=(c-'a');
        }
        mp.insert(x);
    }
    int64_t pw=1;
    for(int i=1;i<m;i++)
    {
        pw*=3;
    }
    int sol=0;
    int64_t x=0;
    for(int i=0;i<int(s.size());i++)
    {
        if(i>=m)
        {
            x-=(s[i-m]-'a')*pw;
        }
        x*=3;
        x+=(s[i]-'a');
        sol+=(mp.count(x)>0);
    }
    cout<<sol<<'\n';
}
main()
{
    //ios::sync_with_stdio(false);
    //cin.tie(0);
    //cout<<"rez: \n";
    auto sol=[&](int x)
    {
        if(x)return "YES";
        return "NO";
    };
    int tt=1;
    //cin>>tt;
    while(tt--)solve();
}