Pagini recente » Cod sursa (job #3343330) | Cod sursa (job #62658) | Cod sursa (job #3343253) | Cod sursa (job #3343259) | Cod sursa (job #3319093)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("abc2.in");
ofstream fout("abc2.out");
unordered_map<int,int> mp;
const int base = 1315423911;
const int mod = 1e9+7;
string sir,c;
inline int hashd(const string &s) {
int h=0;
for (char i:s) {
h=(1ll*h*base+i)%mod;
}
return h;
}
int main() {
fin>>sir;
fin>>c;
int ws=c.size();
int p=1;
for (int i=0;i<ws;++i)
p=1ll*p*base%mod;
int h=0;
for (int i=0;i<ws;++i)
h=(1ll*h*base+sir[i])%mod;
mp[h]++;
for (int i=ws;i<(int)sir.size();++i) {
h=(1ll*h*base+sir[i]-1ll*sir[i-ws]*p)%mod;
if(h<0) h+=mod;
mp[h]++;
}
long long ap=0;
int key=hashd(c);
ap+=mp[key];
mp[key]=0;
while (fin>>c) {
int key=hashd(c);
ap+=mp[key];
mp[key]=0;
}
fout<<ap;
}