Pagini recente » Cod sursa (job #2331535) | Cod sursa (job #2480269) | Cod sursa (job #1869446) | Cod sursa (job #1162507) | Cod sursa (job #273434)
Cod sursa(job #273434)
#include<fstream.h>
#include<string.h>
char a[2000000],b[2000000],c;
int main()
{
ifstream fin("strmatch.in");
ofstream fout("strmatch.out");
int y[2000000];
fin>>a;
//fin>>b;
int i=0,ok=0,p,x=0,l=0,f;
while (fin>>b[i] && b[i]!=NULL)
{
if (ok==0)
{
if (a[0]==b[i])
{
ok=1;
p=1;
f=i;
}
}
else
{
if (a[p]==b[i])
{
if (p==strlen(a)-1)
{
ok=0;
x++;
y[l]=f;
l++;
b[f]='.';
}
else
p++;
}
else
{
p=0;
ok=0;
f=0;
}
}
i++;
}
int ex=0;
ok=0;i=0;p=0;f=0;
while (ex==0)
{
for (i=0;i<strlen(b);i++)
{
ex=1;
if (ok==0)
{
if (a[0]==b[i])
{
ok=1;
p=1;
f=i;
}
}
else
{
if (a[p]==b[i] || (b[i]=='.' && a[0]==a[p]))
{
if (p==strlen(a)-1)
{
ok=0;
x++;
y[l]=f;
l++;
b[f]='.';
ex=0;
}
else
p++;
}
else
{
p=0;
ok=0;
f=0;
}
}
}
}
int j=0;
for (i=0;i<x-1;i++)
for (j=i+1;j<x;j++)
if (y[i]>y[j])
{
int aux=y[i];
y[i]=y[j];
y[j]=aux;
}
fout<<x;
fout<<'\n';
if (x<1000)
{
for (i=0;i<x;i++)
fout<<y[i]<<' ';
}
else
for (i=0;i<1000;i++)
fout<<y[i]<<' ';
//c=a[0];
//int p,i=0,ok=0,x=0;
//while (p
//p=strchr(b,c);
fin.close();
fout.close();
return 0;
}