Pagini recente » Cod sursa (job #2810779) | Cod sursa (job #2670094) | Cod sursa (job #1481025) | Cod sursa (job #241929) | Cod sursa (job #2397773)
#include <fstream>
#include <vector>
#include <cstring>
#define mod 50001
using namespace std;
ifstream f("abc2.in");
ofstream g("abc2.out");
vector <unsigned long long> v[mod+1];
char S[10000002],S1[22];
int ap,i,m,p,r,j;
unsigned long long nr;
int caut(unsigned long long x){
int r=x%mod;
for(int i=0;i<v[r].size();i++)
if(v[r][i]==x)
return i;
return -1;
}
int main()
{ f>>(S+1);
while(f>>(S1+1)){
m=strlen(S1+1);
nr=0;
for(i=1;S1[i]!=0;i++)
nr=nr*10+S1[i]-'a'+1;
i=caut(nr);
r=nr%mod;
if(i==-1)
v[r].push_back(nr);
}
nr=0;p=1;
for(i=1;i<=m-1;i++){
nr=nr*10+S[i]-'a'+1;
p=p*10;
}
ap=0;
for(i=m;S[i]!=0;i++){
nr=nr%p*10+S[i]-'a'+1;
j=caut(nr);
if(j!=-1)
ap++;
}
g<<ap;
return 0;
}