Cod sursa(job #709286)

Utilizator Galax27Tapean Constantin Galax27 Data 7 martie 2012 21:39:00
Problema Potrivirea sirurilor Scor 14
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include<stdio.h>
#include<string.h>
char a[2000000],b[2000000];
int v[2000000];
int main()
{FILE *fo=fopen("strmatch.in","r"),*fc=fopen("strmatch.out","w");
 int n=0,m=0,i=0,j=0;
 unsigned ha=0,hb=0;
 fscanf(fo,"%s",&a);
 fscanf(fo,"%s",&b);
 n=strlen(a);
 m=strlen(b);
 for(i=0;i<n;i++)
 {ha+=a[i];
  hb+=b[i];
 } 
 for(i=0,j=1;i<m-n;i++)
 {if(ha==hb)
    {v[0]++;
     v[j++]=i;
    }
  hb=hb-b[i]+b[i+n];
 }
 fprintf(fc,"%d\n",v[0]);
 for(i=1;v[i]!=0;i++)
  fprintf(fc,"%d ",v[i]);
 fclose(fo);
 fclose(fc);
 return 0;
}