Pagini recente » Cod sursa (job #3173423) | Cod sursa (job #518266) | Cod sursa (job #1724996) | Cod sursa (job #507905) | Cod sursa (job #2741827)
#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;
}