Cod sursa(job #655197)

Utilizator mening12001Andrei Geogescu mening12001 Data 1 ianuarie 2012 18:54:15
Problema Potrivirea sirurilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
char a[2000001],b[2000001];
int v[2000001];
long hash(int st,int dr,char b[])
{long S=0;
int i;
for(i=st;i<=dr;i++)
S=S+b[i];
return S;}
int main()
{ifstream f("strmatch.in");
ofstream h("strmatch.out");
int n,N,NN,i=0,nr=0;
long A,B;
f>>a>>b;
N=strlen(a)-1;
NN=strlen(b)-1;
A=hash(0,N,a);
B=hash(0,N,b);
while(i<=NN-N)
{if(A==B)
if(strncmp(b+i,a,N)==0)
{nr=nr+1;	
v[nr]=i;}
B=B+b[i+N+1]-b[i];	
i++;}
h<<nr<<"\n";
for(i=1;i<=2;i++)
h<<v[i]<<" ";
return 0;}