Pagini recente » Cod sursa (job #2638032) | Cod sursa (job #2850217) | Cod sursa (job #878392) | Cod sursa (job #655892) | Cod sursa (job #3168808)
#include <bits/stdc++.h>
#include <cstring>
#include <cstdio>
#pragma GCC optimize ("O3")
#define din cin
#define dout out
#define pi 3.14159265359
#define sw(x,y) x^=y,y^=x,x^=y
#define bmin(a,b)((a<b)?(a):(b))
#define bmax(a,b)((a>b)?(a):(b))
#define bminify(a,b)a=bmin(a,b)
#define bmaxify(a,b)a=bmax(a,b)
#define forq(i,ii,n)for(i=ii;i<n;i++)
#define f first
#define s second
#define mod 998244353ll
#define nmax 2000004
using namespace std;
typedef long long ll;
ifstream in("strmatch.in");
ofstream out("strmatch.out");
//FILE *fin=fopen("infasuratoare.in","r");
//FILE *fout=fopen("infasuratoare.out","w");
int n,m,i,j,l,p[nmax]={0},o[nmax];char a[nmax],b[nmax];
int main()
{
in>>a>>b;
for(i=1;a[i];i++)
{
while(j&&a[j]!=a[i])j=p[j-1];
if(j<0||a[i]==a[j])++j;
p[i]=j;
}
n=i,j=0;
for(i=0;b[i];i++)
{
while(j&&a[j]!=b[i])j=p[j-1];
if(j<0||b[i]==a[j])++j;
if(a[j]==0)o[l++]=i+1-n,j=p[j-1];
}
out<<l<<'\n';bminify(l,1000);
forq(i,0,l)out<<o[i]<<' ';
}