Cod sursa(job #1051600)

Utilizator PetreFlorinaFMI Petre Florina PetreFlorina Data 10 decembrie 2013 12:20:48
Problema Hashuri Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.31 kb
//#include <iostream>
#include <fstream>
#include<vector>
#define nr_zone 666013
 
using namespace std;
vector <int> hashu[nr_zone];
 
int search (vector <int> hashu[nr_zone], int val)
{
    int zona = val % nr_zone;
    int i;
    for ( i=0; i<hashu[zona].size(); i++)
            if (hashu[zona][i] == val)
            return i;
        return -1;
}
void adaug ( vector <int> hashu[nr_zone], int val)
{
    int zona = val % nr_zone;
        if (search(hashu, val) != -1)
            return;
        else
            hashu[zona].push_back(val);
            return;
}
 
void stergere (vector <int> hashu[nr_zone], int val)
{
    int poz = search(hashu, val);
 
    if (poz != -1)
            {
              int  zona = val % nr_zone;
                hashu[zona][poz] = hashu[zona].back();
                hashu[zona].pop_back();
            }
 
}
 
int main()
{
    long n, x, y;
    ifstream f("hashuuri.in");
    ofstream g("hashuuri.out");
 
    f >> n;
    for (int i=0; i<n; i++)
     {
         f >> x >> y;
         if (x == 1) adaug(hashu, y);
         else
            if (x == 2) stergere(hashu, y);
            else
            {
                if (search(hashu, y) == -1) g << 0 << "\n";
                else g << 1 << "\n";
 
            }
     }
    return 0;
}