Pagini recente » Cod sursa (job #3287465) | Cod sursa (job #634285) | Cod sursa (job #3030253) | Cod sursa (job #715033) | Cod sursa (job #3292234)
#include <fstream>
#include <cstring>
#include <vector>
using namespace std;
ifstream fcin("strmatch.in");
ofstream fout("strmatch.out");
string a,b;
int lps[2500000];
vector <int> rez;
int main()
{
fcin>>a>>b;
int i=0, j=0;
while(i<b.size())
{
if(a[j]==b[i]) j++, lps[i]=j, i++;
else if (j!=0) j=lps[j-1]; else i++;
if(j==a.size()) rez.push_back(i-a.size());
}
fout<<rez.size()<<'\n';
for(int i=0; i<min((int)rez.size(), 1000); i++)
fout<<rez[i]<<" ";
return 0;
}