Cod sursa(job #3121598)

Utilizator SSKMFSS KMF SSKMF Data 14 aprilie 2023 11:49:49
Problema Abc2 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <fstream>
#include <string>
#include <vector>
#define mod 666013
using namespace std;

ifstream cin ("abc2.in");
ofstream cout ("abc2.out");

vector < vector <string> > tabel(mod);
string text;

bool Found (string cuvant)
{
    hash <string> codificare;
    int lista = codificare(cuvant) % mod;
    for (auto cuvant_ : tabel[lista])
        if (cuvant_ == cuvant)
            return true;

    return false;
}

void Insert (string cuvant)
{
    hash <string> codificare;
    int lista = codificare(cuvant) % mod;
    for (auto cuvant_ : tabel[lista])
        if (cuvant_ == cuvant)
            return;

    tabel[lista].push_back(cuvant);
}

int main ()
{
    cin >> text;

    string cuvant;
    while (cin >> cuvant)
        Insert(cuvant);

    int pozitii = 0;
    for (unsigned int indice = 0 ; indice <= text.size() - cuvant.size() ; indice++)
    {
        string candidat = text.substr(indice , cuvant.size());
        if (Found(candidat) == true)
            pozitii++;
    }

    cout << pozitii;
    cout.close(); cin.close();
    return 0;
}