Pagini recente » Cod sursa (job #1149316) | Cod sursa (job #2543990) | Cod sursa (job #2225195) | Cod sursa (job #2793615) | Cod sursa (job #3319123)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("abc2.in");
ofstream fout("abc2.out");
unordered_set<int> st;
const int base = 1315423911;
const int mod = 1e9+7;
string sir,c;
int main() {
fin>>sir;
int ws=0;
while(fin>>c){
if(!ws) ws=c.size();
int h=0;
for(char ch:c)
h=(1ll*h*base+ch)%mod;
st.insert(h);
}
int p=1;
for(int i=0;i<ws;++i)
p=1ll*p*base%mod;
int h=0;
for(int i=0;i<ws;++i)
h=(1ll*h*base+sir[i])%mod;
long long ap=0;
if(st.count(h)) ++ap;
for(int i=ws;i<(int)sir.size();++i){
h=(1ll*h*base+sir[i]-1ll*sir[i-ws]*p)%mod;
if(h<0) h+=mod;
if(st.count(h)) ++ap;
}
fout<<ap;
}