Cod sursa(job #2741827)

Utilizator vladvlad00Vlad Teodorescu vladvlad00 Data 19 aprilie 2021 15:09:29
Problema Potrivirea sirurilor Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
#include <vector>
#include <algorithm>
#include <queue>
#include <map>
#include <set>
#include <cstdlib>
#include <cmath>
#include <string>
#include <functional>

using namespace std;

ifstream cin("strmatch.in");
ofstream cout("strmatch.out");

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);

	string s, p;
	vector<int> sol;
	int nrsol = 0;

	cin >> p >> s;
	auto searcher = boyer_moore_horspool_searcher(p.begin(), p.end());
	
	auto pos = search(s.begin(), s.end(), searcher);
	while (pos != s.end())
	{
		nrsol++;
		if (sol.size() < 1000)
			sol.push_back(pos - s.begin());
		pos = search(pos + 1, s.end(), searcher);
	}
	cout << nrsol << '\n';
	for (int i : sol)
		cout << i << ' ';
	cout << '\n';
	return 0;
}