Cod sursa(job #2214823)

Utilizator bcrsqCont Sters bcrsq Data 20 iunie 2018 10:57:22
Problema Potrivirea sirurilor Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <stdio.h>
#include <cstring>
#include <set>

using namespace std;

#define NMAX 2000000

int main () {
	char a[NMAX], b[NMAX];
	int alen, blen, counter = 0;
	set<int> pos;

	freopen("strmatch.in", "r", stdin);
	freopen("strmatch.out", "w", stdout);

	scanf("%s", a);
	scanf("%s", b);

	alen = strlen(a);
	blen = strlen(b);

	for (int i = 0; i < blen - alen + 1; i++) {
		int OK = 1;

		for (int j = 0; j < alen; j++) {
			if (b[i + j] != a[j]) {
				OK = 0;
				break;
			}
		}

		if (OK) {
			counter++;
			pos.insert(i);
		}
	}

	printf("%d\n", counter);

	int k = 0;
	for (auto elem : pos) {
		k++;
		
		if (k > 1000) {
			break;
		}

		printf("%d ", elem);
	}

	printf("\n");

	return 0;
}