Pagini recente » Cod sursa (job #39140) | Cod sursa (job #97919) | Cod sursa (job #2571459) | Cod sursa (job #3005187) | Cod sursa (job #100999)
Cod sursa(job #100999)
#include<fstream.h>
#include<string.h>
#define dim 10000001
char (*a)=new char[dim];
char b[22];
char cc[dim];
int main()
{ifstream f("abc2.in");
ofstream g("abc2.out");
unsigned long n,l,i,j,li,ls;
int ok=0;
f.get(a,dim,'\n');
f.get();
n=strlen(a);
for(i=0;i<=n;i++) cc[i]=1;
int c=0,ok2;
f.get(b,22,'\n');
l=strlen(b);
li=0;
ls=l-1;ok2=1;
while((ls<n)&&ok2)
{ok=0;
if(!cc[li])
{ok=1;
for(i=1;i<l;i++)
{if(a[li+i]!=b[i]) {ok=0;break;}}
if(ok) {ok2=1;break;}
else{li+=l;
ls+=l;
}
}
else if((a[li]==b[0])&&(a[ls]==b[l-1]))
{ok=1;
for(i=1;i<l;i++)
if(a[li+i]!=b[i]) {ok=0;break;}
if(ok) {c++;cc[li]=0;}
}
li++;
ls++;
}
while(f.get(b,22,'\n'))
{f.get();
li=0;
ls=l-1;
ok2=1;
while((ls<n)&&ok2)
{ok=0;
if(!cc[li])
{ok=1;
for(i=1;i<l;i++)
{if(a[li+i]!=b[i]) {ok=0;break;}}
if(ok) {ok2=1;break;}
else{li+=l;
ls+=l;
}
}
else if((a[li]==b[0])&&(a[ls]==b[l-1]))
{ok=1;
for(i=1;i<l;i++)
if(a[li+i]!=b[i]) {ok=0;break;}
if(ok) {c++;cc[li]=0;}
}
li++;
ls++;
}
}
f.close();
g<<c<<'\n';
g.close();
return 0;
}