Pagini recente » Cod sursa (job #565292) | Cod sursa (job #940704) | Cod sursa (job #2518458) | Cod sursa (job #3189878) | Cod sursa (job #413016)
Cod sursa(job #413016)
using namespace std;
#include <cstdio>
#include <cstring>
#include <vector>
#include <algorithm>
vector<unsigned> S;
char s[1<<24], c[25];
unsigned Val(char * s, int nC){
int NR=0;
for(int i=0;i<nC;++i)
NR=3*NR+s[i]-'a';
return NR;
}
int main(){
freopen("abc2.in","r",stdin);
//int nS=0;
//while((ch=fin.get())>='a') s[nS++]=ch;
//s[nS]=0;
fgets(s,10000005,stdin);
fgets(c,25,stdin);
//cout<<s<<endl<<endl;
//cout.flush();
int nC=strlen(c)-1;
S.push_back(Val(c,nC));
while(fgets(c,25,stdin))
S.push_back(Val(c,nC));
sort(S.begin(), S.end());
int rez=0;
int NR=0;
unsigned P=1;
for(int i=0;i<nC;++i)
NR=3*NR+s[i]-'a',P*=3;
P/=3;
rez+=binary_search(S.begin(), S.end(), NR);
for(int i=nC;s[i]>='a';++i){
NR%=P;
NR = 3*NR + s[i]-'a';
rez+=binary_search(S.begin(), S.end(), NR);
}
freopen("abc2.out","w",stdout);
printf("%d\n",rez);
return 0;
}