Pagini recente » Cod sursa (job #1332919) | Cod sursa (job #2564036) | Cod sursa (job #1931269) | Cod sursa (job #1325836) | Cod sursa (job #1689686)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("abc2.in");
ofstream fout("abc2.out");
#define Mod 666013
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()
{
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;
for(int i=l;i<s.length();++i)
{
s1.erase(0,1);
s1=s1+s[i];
if(find(s1))++k;
}
fout<<k;
return 0;
}