Pagini recente » Cod sursa (job #958383) | Cod sursa (job #3206754) | Cod sursa (job #662327) | Cod sursa (job #1840449) | Cod sursa (job #3122625)
#include <fstream>
#include <algorithm>
#include <vector>
#include <cassert>
#include <cmath>
#include <stack>
#include <set>
#include <functional>
#include <queue>
#include <cctype>
using namespace std;
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);
while(cin>>aux)
{
m=uint32_t(aux.size());
uint32_t x=0;
for(auto &c:aux)
{
x*=3;
x+=(c-'a');
}
cash[x%mod].push_back(x);
//if(aux=="aaaa")break;
}
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+=(count(cash[x%mod].begin(),cash[x%mod].end(),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();
}