Pagini recente » Cod sursa (job #973910) | Cod sursa (job #3137280) | Cod sursa (job #1004923) | Cod sursa (job #2286553) | Cod sursa (job #682827)
Cod sursa(job #682827)
#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;
}