Pagini recente » Cod sursa (job #1571501) | Cod sursa (job #2527178) | Cod sursa (job #2526552) | Cod sursa (job #2249060) | Cod sursa (job #3176630)
#include <fstream>
#include <vector>
#define pb push_back
using namespace std;
ifstream fin("strmatch.in");
ofstream fout("strmatch.out");
const int N=2e6+2;
vector<int> ans;
string a,b;
int nr,i,j;
int p[N];
int main()
{
fin>>a>>b;
for(i=1; i<a.size(); i++)
{
while(j && a[j]!=a[i])
j=p[j-1];
if(a[j]=a[i])
j++;
p[i]=j;
}
for(i=j=0; i<b.size(); i++)
{
while(j && a[j]!=b[i])
j=p[j-1];
j+=(a[j]==b[i]);
if(j==a.size())
ans.pb(i+1-a.size()), j=p[j-1];
}
fout<<ans.size()<<'\n';
for(auto i:ans)
fout<<i<<' ';
return 0;
}