Pagini recente » Cod sursa (job #1638258) | Cod sursa (job #1415115) | Cod sursa (job #578880) | Cod sursa (job #2782689) | Cod sursa (job #1166369)
#include <iostream>
#include <fstream>
#include <string>
#include <tr1/unordered_map>
#define LL long long
using namespace std;
using namespace tr1;
ifstream f("abc2.in");
ofstream g("abc2.out");
unordered_map < unsigned int , bool > mp;
string x;
int n,rez = 0;
void read(){
getline(f,x);
for(string a;getline(f,a);){
n = a.size();
unsigned int nr = 0 ;
for(int i=0;i<n;++i)
nr = nr * 3 + a[i] - 'a';
mp[nr] = 1;
}
}
void solve(){
int len = x.size();
unsigned int nr = 0 , p = 1;
for(int i=0;i<n;++i){
nr = nr * 3 + x[i] - 'a';
p = p * 3;
}
p/=3;
rez+=mp[nr];
for(int i=n;i<len;++i){
nr-=p*(x[i-n]-'a');
nr= nr*3 + x[i] - 'a';
rez+=mp[nr];
}
}
void write(){
g<<rez;
}
int main()
{
read();
solve();
write();
return 0;
}