Cod sursa(job #1320572)

Utilizator niculescuteodorNiculescu Teodor Vicentiu niculescuteodor Data 18 ianuarie 2015 02:52:23
Problema Aho-Corasick Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include <iostream>
#include <fstream>
#include <cstring>

using namespace std;

ifstream f("ahocorasick.in");
ofstream g("ahocorasick.out");

char sirCaractere [1000001];
char secventa [10001];
int lung, sec, p,nr,i,j,k,n;
int main()
{
    f.getline (sirCaractere, 1000001);
    lung = strlen (sirCaractere );
    f>>n;
    int i;
    f.get ();
    for (i=1;i<=n;i++)
    {
        f.getline (secventa, 10001);
        sec = strlen (secventa);
        nr =0;  // nr aparitii
        for (j=0;j<=lung-sec;j++)
        {
            if (sirCaractere [j] == secventa [0])
            {
                p=1; // true
                for (k=0;k<sec;k++)
                    if (sirCaractere [j+k] != secventa [k] )
                {
                    p=0; // false
                    break;
                }
                if (p==1)
                    nr++;
            }
        }
        g << nr << "\n";
    }
    return 0;
}