Pagini recente » Cod sursa (job #1162239) | Cod sursa (job #810694) | Cod sursa (job #161494) | Cod sursa (job #679149) | Cod sursa (job #2343911)
#include <iostream>
#include <cstring>
#include <fstream>
using namespace std;
ifstream fin("strmatch.in");
ofstream fout("strmatch.out");
char s1[2000000], s2[2000000];
int n1, n2;
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])
j++;
else
j = 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;
}