Cod sursa(job #709316)

Utilizator Galax27Tapean Constantin Galax27 Data 7 martie 2012 23:02:27
Problema Potrivirea sirurilor Scor 14
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<stdio.h>
#include<string.h>
#define mod 127
char a[2000000],b[2000000];
int n,m,i,j,p,v[2000000];
unsigned ha,hb;
int main()
{freopen("strmatch.in","r",stdin);
 freopen("strmatch.out","w",stdout);
 scanf("%s",a);
 scanf("%s",b);
 n=strlen(a);
 m=strlen(b);
 for(i=0,p=1;i<n;i++)
 {ha=ha*100+a[i]%mod;
  hb=hb*100+b[i]%mod;
  if(!i)
	 continue;
  p=p*100;
 } 
 for(i=0,j=1;i<m-n;i++)
 {if(ha==hb)
    {v[0]++;
     v[j++]=i;
    }
  hb=(hb%p)*100+b[i+n]%mod;
 }
 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;
}