Pagini recente » Cod sursa (job #1563102) | Cod sursa (job #731086) | Cod sursa (job #1732278) | Cod sursa (job #571367) | Cod sursa (job #1512495)
#include <iostream>
#include <cstdio>
using namespace std;
char x1[2000000],x2[2000000];
int i,s1,s2,l1,l2,k,j,p,V[1000];
int main()
{
freopen("strmatch.in","r",stdin);
freopen("strmatch.out","w",stdout);
scanf("%2000000s",x1);
scanf("%2000000s",x2);
l1=strlen(x1);
l2=strlen(x2);
for (i=0;i<l1;i++)
{
s1+=x1[i]-'a'+1;
s2+=x2[i]-'a'+1;
}
if (s1==s2)
{
k=0;
for (j=0;j<l1;j++)
{
if (x1[j]!=x2[j]) {k=1;break;}
}
if (k==0)
{
V[p]=0;
p++;
}
}
for (i=0;i<l2-l1;i++)
{
s2-=x2[i];
s2+=x2[i+l1];
if (s1==s2)
{
k=0;
// cout<<i+1<<" ";
for (j=0;j<l1;j++)
{
if (x1[j]!=x2[i+j+1]) {k=1;break;}
}
if (k==0)
{
V[p]=i+1;
p++;
}
}
}
cout<<p<<'\n';
p=min(p,1000);
for (i=0;i<p;i++)
cout<<V[i]<<" ";
}