Pagini recente » Cod sursa (job #1447303) | Cod sursa (job #2670449) | Cod sursa (job #2888811) | Cod sursa (job #2828782) | Cod sursa (job #3122633)
#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<int>mp;
while(cin>>aux)
{
m=uint32_t(aux.size());
uint32_t x=0;
for(auto &c:aux)
{
x*=3;
x+=(c-'a');
}
mp.insert(x);
}
uint32_t pw=1;
for(int i=1;i<m;i++)
{
pw*=3;
}
int sol=0;
for(int i=0,x=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();
}