Cod sursa(job #923331)

Utilizator MciprianMMciprianM MciprianM Data 23 martie 2013 13:34:24
Problema Potrivirea sirurilor Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#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;
}