Cod sursa(job #2658810)

Utilizator Antonia_onisoruantonia onisoru Antonia_onisoru Data 15 octombrie 2020 10:25:51
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.18 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

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

const int N = 1000000;
const int MOD =  666013;

int v[N];
vector <long long> myHash[MOD];

void adauga( long long x ){

    int cod = x % MOD;
    int i;

    i = 0;
    while( i < myHash[cod].size() && myHash[cod][i] != x )
        i++;
    if( i == myHash[cod].size() )
        myHash[cod].push_back(x);

}

void sterge( long long x ){

    int cod = x % MOD;
    int i;

    i = 0;
    while( i < myHash[cod].size() && myHash[cod][i] != x )
        i++;
    if( i < myHash[cod].size() )
        myHash[cod].erase( myHash[cod].begin() + i );

}

bool cauta( long long x ){

    int cod = x % MOD;
    int i;

    i = 0;
    while( i < myHash[cod].size() && myHash[cod][i] != x )
        i++;
    return i < myHash[cod].size();

}

int main()
{
    int n, o, i;
    in>>n;
    for( i = 0; i < n; i++ ){
        in>>o>>v[i];
        if( o == 1 )
            adauga(v[i]);
        if( o == 2 )
            sterge(v[i]);
        if( o == 3 )
            out<<cauta(v[i])<<'\n';
    }
    return 0;
}