Pagini recente » Cod sursa (job #1866621) | Cod sursa (job #1681136) | Cod sursa (job #2414599) | Cod sursa (job #2223774) | Cod sursa (job #3122862)
#include <fstream>
#include <algorithm>
#include <vector>
#include <cassert>
#include <cmath>
#include <stack>
#include <set>
#include <functional>
#include <queue>
#include <cctype>
using namespace std;
const int64_t mod=999983;
ifstream cin("abc2.in");
ofstream cout("abc2.out");
#define int int64_t
void solve()
{
string s;
cin>>s;
string aux;
int m=0;
vector<vector<int64_t>>cash(mod);
while(cin>>aux)
{
m=int64_t(aux.size());
int64_t x=0;
for(auto &c:aux)
{
x*=3LL;
x+=(c-'a');
}
cash[x%mod].push_back(x);
if(aux=="aaaa")break;
}
int64_t pw=1;
for(int i=1;i<m;i++)
{
pw*=3LL;
}
int sol=0;
for(int i=0,x=0;i<int(s.size());i++)
{
if(i>=m)
{
x-=(s[i-m]-'a')*pw;
}
x*=3LL;
x+=(s[i]-'a');
sol+=(count(cash[x%mod].begin(),cash[x%mod].end(),x)>0);
}
cout<<sol<<'\n';
}
main()
{
auto sol=[&](int x)
{
if(x)return "YES";
return "NO";
};
int tt=1;
//cin>>tt;
while(tt--)solve();
}