Pagini recente » Cod sursa (job #2542087) | Cod sursa (job #1689176) | Cod sursa (job #2687277) | Cod sursa (job #2694870) | Cod sursa (job #2419201)
#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,has[DMAX],h;
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=1;
n=a.size();
int cn=n;
n--;
//dbg(x);
for(i=1;i<cn;i++)
{
h*=NMAX;
}
y=1;
for (int i = cn-1;i>=0;i--)
{
x+=((unsigned long long)a[i]*y);
has[0]+=(unsigned long long)b[i]*y;
y*=NMAX;
// dbg(x);
// 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)*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;
y=1;
for (int i = cn-1;i>=0;i--)
{
x+=((unsigned long long)a[i]*y);
y*=NMAX;
// dbg(x);
// 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;
}