Cod sursa(job #3141358)

Utilizator alexandru_ioan.06Alexandru Ioan alexandru_ioan.06 Data 13 iulie 2023 18:30:49
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.17 kb
#include <bits/stdc++.h>

using namespace std;

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

const int dim = 123457;

struct Nod
{
    Nod *urm;
    int info;
};

Nod * v[dim];
int q , num , op;

void Adauga (int num)
{
    int p = num % dim;
    Nod *nou = new Nod;
    nou->info = num;
    nou->urm = v[p];
    v[p] = nou;
}

void Sterge (int num)
{
    int p = num % dim;
    Nod *c = NULL;
    if(v[p] == NULL) return;
    if(v[p]->info == num)
    {v[p] = v[p]->urm;return;}
    for(Nod *q = v[p]; q->urm != NULL && c == NULL; q = q->urm)
        if(q->urm->info == num)
            c = q;
    if(c != NULL)
        c->urm = c->urm->urm;
}

void Cauta(int num)
{
    int p = num % dim;
    for(Nod *q = v[p]; q != NULL ; q = q->urm)
        if(q->info == num)
            {
                fout << "1\n";
                return;
            }
    fout << "0\n";
}

int main()
{
    fin >> q;
    while(q--)
       {
            fin >> op >> num;
            if(op == 1)
               Adauga(num);
            else if(op == 2)
               Sterge(num);
            else
                Cauta(num);
        }
}