Pagini recente » Cod sursa (job #1978044) | Istoria paginii utilizator/marcumlm | Cod sursa (job #669344) | Cod sursa (job #1012106) | Cod sursa (job #1152238)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("strmatch.in");
ofstream g("strmatch.out");
#include <cstring>
#define LE 4000666
#define cout g
string a,b;
int Z[LE];
int main()
{
f>>a>>b;
int ni=a.length();
a+=b;
int N=a.length(),i;
a+=" ";
int st=0,dr=0,result=0;
/*
for(i=1; i<N; ++i)
{
int p=i;
if (dr>i) p=min(i+Z[i-st],dr+1);
while (a[p]==a[p-i]) ++p;
Z[i]=p-i;
if (p>i) st=i,dr=p-1;
}
for(i=ni; i<N; ++i)
if (Z[i]>=ni)
++result;
int nr=0;
cout<<result<<'\n';
for(i=ni; i<N; ++i)
if (Z[i]>=ni&&nr+1<=1000)
{
++nr;
cout<<i-ni<<" ";
}
*/
return 0;
}