Pagini recente » Cod sursa (job #2894678) | Cod sursa (job #3210693) | Cod sursa (job #218287) | Cod sursa (job #1944151) | Cod sursa (job #2638063)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("strmatch.in");
ofstream fout("strmatch.out");
vector<int>poz;
const int MOD=666013;
int hsh(string s)
{
int mod=0,val=1;
for(auto c:s)
{
mod+=(val%MOD)*(c-'A');
val*=26;
val%=MOD;
mod%=MOD;
}
return mod;
}
int eqhsh(string a,string b)
{
if(hsh(a)==hsh(b))
return a==b;
return false;
}
int main()
{
string a,b;
fin>>a>>b;
int nr=0;
for(int i=0;i<=(int)b.size()-(int)a.size();i++)
{
string s=b.substr(i,a.size());
if(eqhsh(a,s))
{
nr++;
poz.push_back(i);
}
}
fout<<nr<<"\n";
for(auto p:poz)
fout<<p<<" ";
}