Pagini recente » Cod sursa (job #2923803) | Cod sursa (job #175654) | Cod sursa (job #1789440) | Cod sursa (job #283442) | Cod sursa (job #1809361)
#include <iostream>
#include <cstring>
#include <fstream>
using namespace std;
ifstream f("kmp.in");
ofstream g("kmp.out");
char p[101],t[101];
int urm[101],n,m,i;
void prefix()
{
int q,k;
k=0; ///cel mai lung sufix care e prefix al lui p
urm[1]=0;
for (q=2;q<=m;q++) { ///lungime subsir
while (k>0 && p[k]!=p[q-1])
k=urm[k];
if (p[k]==p[q-1])
k++;
urm[q]=k;
}
for (q=1;q<=m;q++)
cout<<urm[q]<<' ';
cout<<'\n';
}
int main()
{
f>>n;
for (i=1;i<=n;i++) {
f>>p;
m=strlen(p
);
prefix();
}
return 0;
}