Pagini recente » Cod sursa (job #2542218) | Cod sursa (job #739393) | Cod sursa (job #2660139) | Cod sursa (job #2627801) | Cod sursa (job #343444)
Cod sursa(job #343444)
#include <fstream>
#include <string>
#include <vector>
#define MOD 666013
using namespace std;
ifstream fin("abc2.in");
ofstream fout("abc2.out");
vector<string> h[MOD];
int len,i;
string text,cuvant;
void hash(const string &key)
{
int val = 0;
for (i=0;i<len;i++)
{
val+=key[i];
}
h[val].push_back(key);
}
bool find(int key, const string &obj)
{
if (h[key].size()>0)
{
int k;
for (k=0;k<h[key].size();k++)
{
if (h[key][k] == obj)
{
return true;
}
}
}
return false;
}
int nrsol;
int main()
{
fin >> text;
while (!fin.eof())
{
fin >> cuvant;
len = cuvant.size();
hash(cuvant);
}
int key = 0,end;
string obj;
for (i=0;i<len;i++)
{
obj.push_back('a');
}
end = text.size() - len;
int j,t;
for (i=0;i<=end;i++)
{
t = 0;
key = 0;
for (j=i;j<i+len;j++)
{
obj[t] = text[j];
key+=obj[t];
t++;
}
if (find(key,obj))
{
nrsol++;
}
}
fout << nrsol;
return 0;
}