Pagini recente » Cod sursa (job #1829898) | Cod sursa (job #2986950) | Cod sursa (job #41688) | Cod sursa (job #203810) | Cod sursa (job #2442497)
#include <bits/stdc++.h>
using namespace std;
const int mod=1e9+7;
vector<int>v;
int main()
{
ifstream cin("strmatch.in");
ofstream cout("strmatch.out");
string a,b;
cin>>a>>b;
int p=0,pb=0,la=a.size(),p100=1;
for(int i=1;i<la;i++)
p100=(p100*100)%mod;
for(int i=0;i<a.size();i++)
p=(p*100+(a[i]-'A'))%mod;
for(int i=0;i<la;i++)
pb=(pb*100+(b[i]-'A'))%mod;
if(pb==p)
v.push_back(0);
for(int i=la;i<b.size();i++)
{
pb=(pb-(b[i-la]-'A')*p100+mod)%mod;
pb=(pb*100+(b[i]-'A')+2*mod)%mod;
if(pb==p)
v.push_back(i-la+1);
}
cout<<v.size()<<"\n";
for(int i=0;i<min(1000,(int)v.size());i++)
cout<<v[i]<<" ";
return 0;
}