Pagini recente » Cod sursa (job #489697) | Cod sursa (job #2328765) | Cod sursa (job #2820386) | Cod sursa (job #1412817) | Cod sursa (job #2222391)
#include <iostream>
#include <fstream>
#include <vector>
#include <cstdlib>
#include <queue>
using namespace std;
int min(int a, int b) {
return a < b ? a : b;
}
int main() {
std::string first;
std::string second;
ifstream input("strmatch.in");
ofstream output("strmatch.out");
input >> second;
input >> first;
int index_first = 0;
int index_second = 0;
vector<int> aparitionsIndices;
while (index_first != first.size() - 1) {
if (first[index_first] == second[index_second]) {
index_second++;
} else {
index_second = 0;
}
if (index_second == second.size()) {
aparitionsIndices.push_back(index_first);
index_second = 0;
if (first[index_first] == second[index_second])
index_second++;
}
index_first++;
}
output << aparitionsIndices.size() << endl;
for (int i = 0; i < min(aparitionsIndices.size(), 1000); i++)
output << aparitionsIndices[i] - second.size() + 1 << " ";
input.close();
output.close();
return 0;
}