Pagini recente » Cod sursa (job #2111460) | Cod sursa (job #74387) | Cod sursa (job #1398520) | Cod sursa (job #2727028) | Cod sursa (job #1309356)
#include <fstream>
#include <vector>
#include <map>
#include <string>
#define pb push_back
using namespace std;
map<int, int> kush;
ifstream f("abc2.in");
ofstream g("abc2.out");
string ss, s;
int qq, i, lenght;
int main()
{
getline(f, s);
while(getline(f, ss))
{
lenght=ss.size();
int x=0;
for(i=0; i<lenght; ++i)
x=x*3+ss[i]-'a';
if(kush.find(x)==kush.end()) kush[x]=++qq;
}
int len=lenght;
lenght=s.size();
int pow=1, x=0;
for(i=0; i<len; ++i)
{
x=x*3+s[i]-'a';
pow*=3;
}
int word_number=0;
pow/=3;
if(kush.find(x)!=kush.end()) word_number++;
for(i=len; i<lenght; ++i)
{
x-=pow*(s[i-len]-'a');
x=x*3+s[i]-'a';
if(kush.find(x)!=kush.end()) word_number++;
}
g<<word_number;
return 0;
}