Pagini recente » Cod sursa (job #2990973) | Cod sursa (job #2223010) | Cod sursa (job #1073108) | Cod sursa (job #1528539) | Cod sursa (job #2419200)
#include <bits/stdc++.h>
#define dbg(x) cerr<<#x": "<<x<<"\n"
#define dbg_p(x) cerr<<#x": "<<x.first<<","<<x.second<<"\n"
#define dbg_v(x, n) do{cerr<<#x"[]: ";for(int _=0;_<n;++_)cerr<<x[_]<<" ";cerr<<'\n';}while(0)
#define dbg_ok cerr<<"OK!\n"
#define DMAX 10000020
#define NMAX 137
#define MMAX 1
using namespace std;
int n, k, y,m,i,j,ans;
unsigned long long x,h[DMAX],has[DMAX];
bool f[DMAX];
string a,b;
int main()
{
ifstream cin ("abc2.in");
ofstream cout("abc2.out");
ios_base::sync_with_stdio(false);
cin>>b>>a;
h[0]=1;
for(i=1;i<DMAX-15;i++)
{
h[i]=h[i-1]*NMAX;
//dbg(h[i]);
}
n=a.size();
int cn=n;
n--;
//dbg(x);
for (int i = 0; i < cn; ++i)
{
x+=((unsigned long long)a[i]*h[n]);
// dbg(x);
has[0]+=(unsigned long long)b[i]*h[n];
n--;
// dbg(n);
}
j=0;
int l=1;
for (int i = cn; i < b.size(); ++i)
{
has[l]=(has[l-1] - ((unsigned long long) b[j])*h[cn-1])*NMAX+(unsigned long long)b[i];
//dbg(b[j]*h[cn]);
// dbg(has[l]);
l++;
j++;
}
for(i=0;i<l;i++)
{
//dbg(i);
//dbg(has[i]);
if(has[i]==x )
{
ans++;
f[i]=1;
}
}
// dbg(ans);
while(cin>>a)
{
n=a.size();
int cn=n;
n--;
//dbg(x);
x=0;
for (int i = 0; i < cn; ++i)
{
x+=((unsigned long long)a[i]*h[n]);
//dbg(x);
n--;
//dbg(n);
}
n=0;
// dbg(x);
// dbg(ans);
for(i=0;i<l;i++)
{
//dbg(i);
//dbg(has[i]);
if(has[i]==x && f[i]!=1)
{
ans++;
f[i]=1;
}
}
}
cout<<ans;
}