Pagini recente » Cod sursa (job #1032470) | Cod sursa (job #1101096) | Cod sursa (job #2040948) | Cod sursa (job #1013417) | Cod sursa (job #1726564)
#include <bits/stdc++.h>
using namespace std;
const int BIG = 2000005;
char sir_total[BIG],sir_comparat[BIG];
int main() {
long long poz[BIG],n,m,k=1,z=0,cnt=0,j;
freopen("strmatch.in", "r", stdin);
freopen("strmatch.out", "w", stdout);
scanf("%s%s",sir_total+1,sir_comparat+1);
n = strlen(sir_total+1);
m = strlen(sir_comparat+1);
if(n < m){
printf("%d\n",0);
fclose(stdin);
fclose(stdout);
}
for(long long i=1;i<=n;i++){
if(sir_total[i] == sir_comparat[k]){
poz[z] = i-1;
k++;
for(j=i+1;k<=m;j++,k++)
if(sir_total[j] == sir_comparat[k])
cnt++;
if(cnt+1 == m)
z++;
cnt= 0;k=1;
}
}
printf("%d\n",z);
z = min(z, 1000);
for(long long i=0;i<z;i++)
printf("%d ",poz[i]);
return 0;
}