Cod sursa(job #1293686)

Utilizator mariusn01Marius Nicoli mariusn01 Data 16 decembrie 2014 13:14:51
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.33 kb
#include <iostream>
#include <vector>
#include <fstream>
#define DIM 999910

using namespace std;

vector<int> F[DIM];
 // adresa a unui element dintr-un vector de inturi
vector<int>::iterator it;



int n, i, x, t, poz;

ifstream fin("hashuri.in");
ofstream fout("hashuri.out");

vector<int>::iterator search(int x, int p) {
// returneaza -1 daca x nu e in F[p] sau daca e returneaza pozitia
    vector<int>::iterator it;
    for (it = F[p].begin() ; it != F[p].end() ; it++ ) {
        // it ia valoarea adresei primului element din vectorul F[p]
        // si la fiecare pas trece pe urmatorul element
        if (x == *it)
            return it;
    }

    return it;
}

int main () {
    fin>>n;
    for (i=1;i<=n;i++) {
        fin>>t>>x;
        if (t == 1) {
            // adaugam pe x in vectorul F[ x%DIM ];
            it = search(x, x%DIM);
            if (it == F[x%DIM].end()) {
                F[x%DIM].push_back(x);
            }
        }
        if (t == 2) {
            it = search(x, x%DIM);
            if (it != F[x%DIM].end()) {
                F[x%DIM].erase(it);
            }
        }

        if (t == 3) {
            if (search(x, x%DIM) != F[x%DIM].end())
                fout<<"1\n";
            else
                fout<<"0\n";
        }

    }

    return 0;
}