Pagini recente » Cod sursa (job #1172928) | Cod sursa (job #126761) | Cod sursa (job #1798667) | Cod sursa (job #942264) | Cod sursa (job #2745054)
#include <iostream>
#include <fstream>
#include <iomanip>
#include <cmath>
#include <algorithm>
#include <cstring>
using namespace std;
string NumeFisier = "strmatch";
ifstream fin(NumeFisier + ".in");
ofstream fout(NumeFisier + ".out");
typedef unsigned long long int ull;
int main()
{
char sirA[2000001];
fin >> sirA;
char sirB[2000001];
fin >> sirB;
int lenA = strlen(sirA);
int lenB = strlen(sirB);
int nrMatches = 0;
int v[1001];
for (int i = 0; i <= lenB - lenA; i++)
{
if (sirB[i] == sirA[0])
{
bool ok = 1;
for (int j = 1; j < lenA; j++)
if (sirA[j] != sirB[i + j])
{
ok = 0;
break;
}
if (ok && nrMatches < 1000)
{
v[nrMatches] = i;
nrMatches++;
}
else if (nrMatches >= 1000)
break;
}
}
fout << nrMatches << '\n';
for (int i = 1; i <= nrMatches; i++)
fout << v[i] << ' ';
}