Pagini recente » Cod sursa (job #807573) | Cod sursa (job #204937) | Cod sursa (job #2158096) | Cod sursa (job #2025701) | Cod sursa (job #2084425)
#include <cstdio>
#include <cstring>
using namespace std;
char s[2000010],p[2000010];
int na=0,ind[1010],n,m;
int potrivire(int i)///functzia verifica potrvirea lui p in s incepind de la indicele i
{
//ne bazam pe n,m,s,p globale
if(i+m>n)return 0;
int j;
for(j=0;j<m;j++)
if(s[i+j]!=p[j])return 0;
return 1;
}
int main()
{
FILE *f=fopen("strmatch.in","r");
fgets(p,2000010,f);//astea din pacate citesc shi \n
fgets(s,2000010,f);
m=strlen(p),n=strlen(s);
int i;
if(p[m-1]=='\n')p[--m]=0;
if(s[n-1]=='\n')p[--n]=0;
for(i=0;i<=n-m;i++)
if(potrivire(i))
{
if(na<1000)ind[na]=i;
na++;
}
fclose(f);
f=fopen("strmatch.out","w");
fprintf(f,"%d\n",na);
if(na>1000)na=1000;
for(int i=0;i<na;i++)fprintf(f,"%d ",ind[i]);
return 0;
}