Pagini recente » Cod sursa (job #2546379) | Cod sursa (job #2764560) | Cod sursa (job #498362) | Cod sursa (job #2974361) | Cod sursa (job #2506173)
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("strmatch.in");
ofstream fout("strmatch.out");
#define DIM 2000000
char A[DIM + 1], B[DIM + 1];
int indici[1001];
int main()
{
fin >> A >> B;
int la = strlen(A);
int lb = strlen(B);
int pos = 0, rasp = 0;
for (int i = 0; i < lb; ++i)
{
if (A[pos] == B[i])
{
++pos;
if (pos == la)
{
pos = 0;
if (A[pos] == B[i]) { --i; }
++rasp;
if (rasp < 1001) { indici[rasp] = i - la + 2; }
}
}
else
{
pos = 0;
if (A[pos] == B[i]) { --i; }
}
}
fout << rasp << '\n';
for (int i = 1; i <= rasp; ++i)
{
if (i > 1000) { break; }
fout << indici[i] << ' ';
}
fin.close();
fout.close();
return 0;
}