Cod sursa(job #709289)

Utilizator Galax27Tapean Constantin Galax27 Data 7 martie 2012 21:51:04
Problema Potrivirea sirurilor Scor 14
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include<stdio.h>
#include<string.h>
char a[2000000],b[2000000];
int v[2000000];
int main()
{freopen("strmatch.in","r",stdin);
 freopen("strmatch.out","w",stdout);
 int n=0,m=0,i=0,j=0;
 unsigned ha=0,hb=0;
 scanf("%s",a);
 scanf("%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];
 }
 printf("%d\n",v[0]);
 for(i=1;(i<=1000)&&(v[i]!=0);i++)
  printf("%d ",v[i]);
 printf("\n");
 fclose(stdin);
 fclose(stdout);
 return 0;
}