Cod sursa(job #290442)

Utilizator adrianraduleaRadulea Adrian adrianradulea Data 27 martie 2009 22:47:22
Problema Potrivirea sirurilor Scor 38
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include<stdio.h>
#include<string.h>
FILE *f,*g;
char a[2000],b[2000];
long st[2000],st1[2000],c[2000],nr,k,k1,i,j,n,m;
int main()
{ f=fopen("strmatch.in","r"); g=fopen("strmatch.out","w");
  fscanf(f,"%s",a); fscanf(f,"%s",b);
  n=strlen(a)-1; m=strlen(b)-1;
  k=0; k1=0; nr=0;
  for(i=0;i<=m;i++)
   { for(j=1;j<=k;j++)
      if(i-st[j]>=n+1) { nr++; c[nr]=st[j]; }
      else if(a[i-st[j]]==b[i]) { k1++; st1[k1]=st[j]; }
     if(b[i]==a[0]) { k1++; st1[k1]=i; }
     for(j=1;j<=k1;j++) st[j]=st1[j]; k=k1; k1=0;
   }
  fprintf(g,"%ld\n",nr); for(i=1;i<=nr;i++) fprintf(g,"%ld ",c[i]);
  fclose(g);
  return 0;
}