Cod sursa(job #102184)

Utilizator thecataPol Catalin-Petru thecata Data 14 noiembrie 2007 02:23:45
Problema Abc2 Scor 0
Compilator cpp Status done
Runda Happy Coding 2007 Marime 0.66 kb
#include <fstream>
#include <string>
#include <set>
using namespace std;

int l;

int code(const string &s)
{
	int x, i;
	x=0;
	for (i=0; i<l; i++)
		x=x*3+(s[i]-'a');
	return x;
}

int main()
{
	ifstream cin("abc2.in");
	ofstream cout("abc2.out");
	string t, str;
	set<int> s;
	s.clear();
	cin>>t>>str;
	l=str.size();
	s.insert(code(str));
	while (cin>>str)
		s.insert(code(str));

	int cnt=0;
	int i, r=1;
	int x=0;
	for (i=0; i<l-1; i++)
	{
		r*=3;
		x*=3;
		x+=(t[i]-'a');
	}
	int n=t.size();
	for (; i<n; i++)
	{
		x%=r;
		x*=3;
		x+=(t[i]-'a');
		if (s.find(x)!=s.end())
			cnt++;
	}
	cout<<cnt<<endl;
	return 0;
}