Cod sursa(job #2091190)

Utilizator FredyLup Lucia Fredy Data 19 decembrie 2017 11:46:04
Problema Potrivirea sirurilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <iostream>
#include <string.h>
#include <fstream>

using namespace std;

ifstream fin("strmatch.in");
ofstream fout("strmatch.out");

#define lim 2000010
char text[lim],pattern[lim];
int pf[lim];

void prefix_function()
{
    int k=1;
    while (k != sizeof(pattern+1))
    {
        pf[k] = pf[k-1];
        while (k && pattern[k]!=pattern[pf[k]+1]) k = pf[k];
        if (pattern[k+1]==pattern[pf[k]+1]) pf[k]++;
        k++;
    }
}

int main()
{
    fin>>(pattern+1)>>(text+1);
    prefix_function ();
    for (int i=1; i!=sizeof (pattern+1); i++)   fout<<pf[i]<<' ';
    return 0;
}