Pagini recente » Cod sursa (job #3347268) | Cod sursa (job #3355776) | Cod sursa (job #3331740) | Cod sursa (job #3323137) | Cod sursa (job #3319128)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("abc2.in");
ofstream fout("abc2.out");
unordered_set<int> st;
const int base = 3;
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=h*base+(ch-'a');
st.insert(h);
}
int p=1;
for(int i=0;i<ws-1;++i)
p*=base;
int h=0;
for(int i=0;i<ws;++i)
h=h*base+(sir[i]-'a');
long long ap=0;
if(st.count(h)) ++ap;
for(int i=ws;i<(int)sir.size();++i){
h=h*base+(sir[i]-'a')-(sir[i-ws]-'a')*p;
if(st.count(h)) ++ap;
}
fout<<ap;
}