Cod sursa(job #2745054)

Utilizator mafiotxrobeert mafiotx Data 25 aprilie 2021 20:15:54
Problema Potrivirea sirurilor Scor 14
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#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] << ' ';
}