Pagini recente » Cod sursa (job #212908) | Cod sursa (job #649525) | Cod sursa (job #2243939) | Cod sursa (job #1064960) | Cod sursa (job #2303217)
#include <bits/stdc++.h>
using namespace std;
char s[10000005],s2[25];
int len,len2;
unordered_map<unsigned int,int> Ap;
int main(){
freopen("abc2.in","r",stdin);
freopen("abc2.out","w",stdout);
cin>>s;
len=strlen(s);
bool ok=0;
int ans=0;
unsigned int P=1;
while(cin>>s2){
if(ok==0){
len2=strlen(s2);
unsigned int cod=0;
for(int i=1;i<len2;++i)
P*=3;
for(int i=0;i<len2;++i)
cod=cod*3+(s[i]-'a');
for(int i=0;i<len-len2+1;++i){
++Ap[cod];
cod=(cod-P*(s[i]-'a'))*3+(s[i+len2]-'a');
}
}
unsigned int cod=0;
for(int i=0;i<len2;++i)
cod=cod*3+(s2[i]-'a');
if(Ap.find(cod)!=Ap.end()){
ans+=Ap[cod];
Ap.erase(cod);
}
ok=1;
}
cout<<ans<<"\n";
return 0;
}