Cod sursa(job #1051385)

Utilizator PetreFlorinaFMI Petre Florina PetreFlorina Data 9 decembrie 2013 23:08:58
Problema Hashuri Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.27 kb
#include <iostream>
#include <fstream>
#include<vector>
#define nr_zone 666013

using namespace std;
vector <int> hash[nr_zone];

int search (vector <int> hash[nr_zone], int val)
{
    int zona = val % nr_zone;
    for (int i=0; i<hash[zona].size(); i++)
            if (hash[zona][i] == val)
            return i;
        return -1;
}
void adaug ( vector <int> hash[nr_zone], int val)
{
    int zona = val % nr_zone;
        if (search(hash, val) != -1)
            return;
        else
            hash[zona].push_back(val);
            return;
}

void stergere (vector <int> hash[nr_zone], int val)
{
    int poz = search(hash, val);

    if (poz != -1)
            {
              int  zona = val % nr_zone;
                hash[zona][poz] = hash[zona].back();
                hash[zona].pop_back();
            }

}

int main()
{
    int n, x, y;

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

    f >> n;
    for (int i=0; i<n; i++)
     {
         f >> x >> y;
         if (x == 1) adaug(hash, y);
         else
            if (x == 2) stergere(hash, y);
            else
            {
                if (search(hash, y) == -1) g << 0 << "\n";
                else g << 1 << "\n";

            }
     }
    return 0;
}