Pagini recente » Cod sursa (job #3263825) | Cod sursa (job #805651) | Cod sursa (job #733804) | Cod sursa (job #1756981) | Cod sursa (job #2343908)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("strmatch.in");
ofstream fout("strmatch.out");
char s1[2000000], s2[2000000];
int n1, n2;
int index[2000000];
int ap[2000000], k;
int aparitii;
void indexare()
{
int j = 0;
for(int i = 0; i < n2; i++)
{
if(j == n1)
{
aparitii++;
ap[k++] = i - j;
i -= n1;
j = 0;
}
else if(s1[j] == s2[i])
{
index[i] = index[i-1] + 1;
j++;
}
else
{
j = 0;
index[i] = 0;
}
}
}
int main()
{
fin.getline(s1, 2000000);
n1 = strlen(s1);
fin.getline(s2, 2000000);
n2 = strlen(s2);
indexare();
fout << aparitii << '\n';
for(int i = 0; i < k; i++)
fout << ap[i] << " ";
return 0;
}