Cod sursa(job #923331)
#include <fstream>
#include <cstring>
using namespace std;
static const int MAXN = 2000001, MAXA = 1000;
char T[MAXN], P[MAXN];
int A[MAXA];
int main() {
int ans = 0, lP, lT, lastP;
ifstream f("strmatch.in");
f >> P >> T;
f.close();
lP = strlen(P);
lT = strlen(T);
lastP = lT - lP + 1;
for(int i = 0; i < lastP; i++) {
bool match = true;
for(int j = 0; j < lP; j++) {
if(P[j] != T[i + j]) {
match = false;
break;
}
}
if(match) {
if(ans < MAXA) A[ans] = i;
ans++;
}
}
ofstream g("strmatch.out");
g << ans << endl;
for(int i = 0; i < MAXA && i < ans; i++) {
g << A[i] << ' ';
}
g << endl;
g.close();
return 0;
}