Cod sursa(job #1479363)

Utilizator ciocan_catalinCiocan Catalin - Iulian ciocan_catalin Data 31 august 2015 10:23:56
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.05 kb
#include <bits/stdc++.h>
#define P 370003

using namespace std;

vector <int> h[370005];

void Adauga(int x)
{
    int r;
    r = x % P;
    h[r].push_back(x);
}

int Cauta(int x)
{
    int r;
    r = x % P;
    for (unsigned i = 0; i < h[r].size(); i++)
        if (h[r][i] == x) return i;
    return -1;
}

void Sterge(int x)
{
    int r, i, L;
    r = x % P;
    L = h[r].size();
    i = Cauta(x);
    if (i != -1)
    {
        h[r][i] = h[r][L-1];
        h[r].pop_back();
    }
}

int main()
{
    int op, x, pas, n, i;
    ifstream fin("hashuri.in");
    ofstream fout("hashuri.out");

    fin >> n;
    for (pas = 1; pas <= n; ++pas)
    {
        fin >> op >> x;
        if (op == 1)
        {
            i = Cauta(x);
            if (i == -1) Adauga(x);
        }
        else if (op == 2)
        {
            Sterge(x);
        }
        else
        {
            if (Cauta(x) != -1) fout << "1\n";
            else fout << "0\n";
        }
    }

    fin.close();
    fout.close();
    return 0;
}