Cod sursa(job #3157149)

Utilizator vladimir.gavris.1Gavris Mihai Vladimir vladimir.gavris.1 Data 14 octombrie 2023 14:56:38
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.35 kb
#include <fstream>

using namespace std;

#define MAXN 1000000
#define MODUL 666013

int lists[ MODUL + 1 ], nex[ MAXN + 1 ], valori[ MAXN + 1 ], m;

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

int poz( int a )
{
    int cod = a % MODUL;
    int i = lists[ cod ];
    while( i != 0 )
    {
        if( valori[ i ] == a )
        {
            return i;
        }
        i = nex[ i ];
    }
    return 0;
}

void adaugare( int a )
{
    int cod = a % MODUL;
    if( poz( a ) == 0 )
    {
        m++;
        valori[ m ] = a;
        nex[ m ] = lists[ cod ];
        lists[ cod ] = m;
    }
}

void stergere( int a )
{
    int cod = a % MODUL, i = poz( a );
    if( i != 0 )
    {
        valori[ i ] = valori[ lists[ cod ] ];
        lists[ cod ] = nex[ lists[ cod ] ];
    }
}

bool cautare( int a )
{
    int cod = a % MODUL;
    if( poz( a ) != 0 )
        return 1;
    return 0;
}

int main()
{
    int n, i, operatie, element;
    in >> n;

    for( i = 0; i < n; i++ )
    {
        in >> operatie >> element;
        if( operatie == 1 )
        {
            adaugare( element );
        }
        else if( operatie == 2 )
        {
            stergere( element );
        }
        else
        {
            out << cautare( element ) << endl;
        }
    }

    return 0;
}