Pagini recente » Cod sursa (job #1362077) | Cod sursa (job #262526) | Cod sursa (job #2229978) | Cod sursa (job #2729340) | Cod sursa (job #2697998)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("strmatch.in");
ofstream fout("strmatch.out");
string a,b,t1,t2;
int poz,i,pozitiea,pozitieb,pozitie,l1,l2,numar,ok,j;
int v[1010];
int main()
{
fin>>a>>b;
l1=a.size();
l2=b.size();
if(l1>l2)
{
fout<<0;
return 0;
}
poz=0;
for(i=0;i<l1/2;i++)
{
if(a[i]==a[l1-1])
{
poz=l1-1;
ok=1;
for(j=i;j>=0;j--)
if(a[j]!=a[l1-1-(i-j)])
{
ok=0;
break;
}
if(ok==0)
break;
pozitie=i+1;
}
}
for(i=0;i<l2;i++)
{
if(b[i]==a[poz])
poz++;
else poz=0;
if(poz==l1)
{
poz=pozitie;
numar++;
if(numar<=1000)
v[numar]=i-l1+1;
}
}
fout<<numar<<'\n';
numar=min(numar,1000);
for(i=1;i<=numar;i++)
fout<<v[i]<<" ";
return 0;
}