Cod sursa(job #1408904)

Utilizator andreiblaj17Andrei Blaj andreiblaj17 Data 30 martie 2015 12:20:03
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.24 kb
#include <iostream>
#include <fstream>
#include <vector>
#define nmax 666013

using namespace std;

int n, tip, x;
vector <int> H[nmax];

void adauga(int x)
{
    int index = x % nmax;
    bool ok = true;
    for (int i = 0; i < H[index].size(); i++)
        if (H[index][i] == x)
        {
            ok = false;
            break;
        }
    if (ok)
        H[index].push_back(x);
}

void sterge(int x)
{
    int index = x % nmax;
    for (vector <int> :: iterator it = H[index].begin(); it != H[index].end(); ++it)
        if (*it == x)
        {
            H[index].erase(it);
            return;
        }
}

bool check(int x)
{
    int index = x % nmax;
    for (int i = 0; i < H[index].size(); i++)
        if (H[index][i] == x)
            return 1;
    return 0;
}

int main()
{
    
    ifstream fi("hashuri.in");
    ofstream fo("hashuri.out");
    
    fi >> n;
    
    for (int i = 1; i <= n; i++)
    {
        fi >> tip >> x;
        switch (tip) {
            case 1:
                adauga(x);
                break;
            case 2:
                sterge(x);
                break;
            case 3:
                fo << check(x) << "\n";
                break;
        }
    }
    
    fi.close();
    fo.close();
    
    return 0;
}