Cod sursa(job #682827)

Utilizator the_snyper06FMI - ALexandru Mihai the_snyper06 Data 19 februarie 2012 16:40:35
Problema Potrivirea sirurilor Scor 14
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include<cstdio>
#include<cstring>
#include<vector>

using namespace std;
char a[2000001], b[2000001];
long long na, nb, nr;
vector <int> L;

int main() {
	int i, j;
	
	freopen("strmatch.in", "r", stdin), freopen("strmatch.out", "w", stdout);
	scanf("%s %s", a, b);
	
	for(i = 0; a[i]; i++) na += a[i] - '0';
	for(i = 0, j = 0; b[i]; i++) {
		if(nb == na && i - j == (long long)strlen(a)) nr++, L.push_back(j);
		nb += b[i] - '0';
		while(nb > na || i - j + 1 > (long long)strlen(a)) nb -= b[j++] - '0';
	}
	
	printf("%lld\n", nr);
	for(i = 0; i < (int) L.size(); i++) printf("%d ", L[i]);
	
	return 0;
}