Pagini recente » Cod sursa (job #2667231) | Cod sursa (job #2890526) | Cod sursa (job #2982792) | Cod sursa (job #1509362) | Cod sursa (job #2296758)
#include<fstream>
#include<string>
#include<map>
using namespace std;
ifstream cin("abc2.in");
ofstream cout("abc2.out");
string a,b;
map<long long,int> M;
map<string,int> S;
int n,m,k;
long long ans;
int main(){
cin>>a>>b;
k=b.size(); S[b]=1;
long long code_first=0,p=1;
long long code_second=0;
for(int i=1;i<k;i++)
p*=3;
for(int i=0;i<k;i++){
code_first=code_first*3+(a[i]-'a');
code_second=code_second*3+(b[i]-'a');
}
++M[code_first];
for(int i=k;i<a.size();i++){
code_first=(code_first-(a[i-k]-'a')*p)*3+(a[i]-'a');
++M[code_first];
}
ans+=M[code_second];
while(cin>>b){
if(S[b]==1) continue;
S[b]=1;
code_second=0;
for(int i=0;i<k;i++)
code_second=code_second*3+(b[i]-'a');
ans+=M[code_second];
}
cout<<ans;
}