Pagini recente » Statistici Siyong Huang (frodakcin) | Rating Posmangiu Luchian Vlad (c909091) | Cod sursa (job #2071724) | Cod sursa (job #2482889) | Cod sursa (job #1689872)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("abc2.in");
ofstream fout("abc2.out");
#define Mod 9901
vector<string>Hash[Mod];
string s,s1;
int k,l;
int H(string s)
{
int l=s.length(),k=0,i;
for(i=0;i<l;++i)k+=s[i];
return k%Mod;
}
bool find(string s)
{
int key=H(s);
vector<string>::iterator B=Hash[key%Mod].begin(),E=Hash[key%Mod].end();
for(;B!=E;++B)
if(*B==s)return 1;
return 0;
}
void insert(string s)
{
int key=H(s1);
vector<string>::iterator B=Hash[key%Mod].begin(),E=Hash[key%Mod].end();
if(find(s))return;
Hash[key%Mod].push_back(s1);
}
int main()
{
ios_base::sync_with_stdio(0);
fin.tie(0);
fin>>s;
while(fin>>s1)insert(s1);
l=s1.length();
s1="";
for(int i=0;i<l;++i)s1+=s[i];
if(find(s1))++k;
int l1=s.length();
for(int i=l;i<l1;++i)
{
s1.erase(0,1);
s1=s1+s[i];
k+=find(s1);
//if(find(s1))++k;
}
fout<<k;
return 0;
}