Cod sursa(job #715180)
#include<cstdio>
#include<cstring>
#include<vector>
#define _SIZEM 2000010
char sir[_SIZEM], cautat[_SIZEM];
using namespace std;
int main()
{
freopen("strmatch.in","r",stdin);
freopen("strmatch.out","w",stdout);
gets(cautat); gets(sir);
vector<int> v;
for (int i=0; sir[i]!=0;i++)
{
int j;
for (j=0; sir[i+j]!=0 && cautat[j]!=0 && sir[i+j]==cautat[j] ;j++);
if (j==strlen(cautat)) v.push_back(i);
}
printf("%d\n", v.size());
for (int i=0; i<v.size() && i<1000 ;i++)
printf("%d ", v.at(i));
return 0;
}