Cod sursa(job #2617576)

Utilizator Zamfirescuste2Zamfirescu Stefan Zamfirescuste2 Data 22 mai 2020 12:30:47
Problema Hashuri Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.1 kb
#include <bits/stdc++.h>

using namespace std;

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

const int NR_LINII = 700000;

vector <int> hash_table[NR_LINII];

int in_hash(int x);

int main(){
    int n;
    f >> n;

    int key;
    int operatie;
    for( int i = 0; i < n; ++i ){
        f >> operatie >> key;
        if( operatie == 1)
            if( in_hash(key) == 0)
                hash_table[key%NR_LINII].push_back(key);
        
        if( operatie == 2){
            int aux = 0;
            vector <int> :: iterator it;
            it = hash_table[key%NR_LINII].begin();
            while(it != hash_table[key%NR_LINII].end() && aux == 0){
                if( *it == key ){
                    hash_table[key%NR_LINII].erase(it);
                    aux = 1;
                }
                ++it;
            }
        }
        if( operatie == 3){
            g << in_hash(key) << "\n";
        }
        
    }   
}

int in_hash(int x){
    int key = x % NR_LINII;

    for (auto it = hash_table[key].begin(); it != hash_table[key].end(); ++it )
        if( *it = x )
            return 1;
    return 0;
}