Cod sursa(job #731208)

Utilizator repp4raduRadu-Andrei Szasz repp4radu Data 7 aprilie 2012 18:33:37
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.04 kb
#include <stdio.h>
#include <vector>

using namespace std;

const int MAX = 600005;

vector<int> v[MAX];

void insert(int el)
{
    int cod = el % MAX, found = 0;
    for(size_t i = 0; i < v[cod].size() && !found; i++)
        if(v[cod][i] == el) found++;
    if(!found)
        v[cod].push_back(el);
}

void remove(int el)
{
    int cod = el % MAX, found = 0;
    for(size_t i = 0; i < v[cod].size() && !found; i++)
        if(v[cod][i] == el) {v[cod].erase(v[cod].begin() + i); found++;}
}

int Find(int el)
{
    int cod = el % MAX;
    for(size_t i = 0; i < v[cod].size(); i++)
        if(v[cod][i] == el) return 1;
    return 0;
}


int main()
{
    freopen("hashuri.in", "r", stdin);
    freopen("hashuri.out", "w", stdout);
    int n, op, a;
    scanf("%d", &n);
    while(n--)
    {
        scanf("%d %d", &op, &a);
        switch(op)
        {
            case 1: insert(a); break;
            case 2: remove(a); break;
            case 3: printf("%d\n", Find(a)); break;
        }
    }
    return 0;
}