Pagini recente » Cod sursa (job #1988504) | Cod sursa (job #1450782) | Cod sursa (job #414371) | Borderou de evaluare (job #1330559) | Cod sursa (job #102184)
Cod sursa(job #102184)
#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;
}