Pagini recente » Cod sursa (job #900498) | Cod sursa (job #513299) | Cod sursa (job #2405314) | Cod sursa (job #1076440) | Cod sursa (job #991148)
Cod sursa(job #991148)
#include <fstream>
using namespace std;
ifstream f("strmatch.in");
ofstream g("strmatch.out");
char a[300000],b[300000];
long long i,j,k,n1,n2,nr,p,ok,d[200000];
int main()
{
while (a[n1]!='\n')
{ n1++;
f>>noskipws>>a[n1];
}
n1--;
while (b[n2]!='\n')
{ n2++;
f>>noskipws>>b[n2];
}
n2--;
for (i=1;i<=n2;i++)
{
if (b[i]==a[1])
{ ok=1;
p=0;
for (j=2;j<=n1;j++)
{
if (b[i+j-1]==a[1] && p==0)
p=i+j-1;
if (a[j]!=b[i+j-1])
{
ok=0;
break;
}
}
if(ok){nr++;d[nr]=i-1;}
if (p!=0)i=p-1;
else
i+=n1-1;
}
}
g<<nr<<'\n';
for(i=1;i<=nr;i++)g<<d[i]<<" ";
f.close();
g.close();
}