Cod sursa(job #2289687)

Utilizator ZappaManIosif Adrian-Mihai ZappaMan Data 24 noiembrie 2018 23:57:55
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.03 kb
#include <stdio.h>
#include <algorithm>
#include <vector>

using namespace std;

const int NMAX = 1000005;
const int MOD = 999979;

int N;

int app = 0;

vector<int> vals[MOD];

void erase_val(int val) {
   int k = val % MOD;
   auto it = find(vals[k].begin(), vals[k].end(), val);
   if (it != vals[k].end()) {
      vals[k].erase(it);
   }
}

bool find_val(int val) {
   int k = val % MOD;
   auto it = find(vals[k].begin(), vals[k].end(), val);
   return (it != vals[k].end());
}

void insert_val(int val) {
   int k = val % MOD;
   auto it = find(vals[k].begin(), vals[k].end(), val);
   if (it == vals[k].end()) {
      vals[k].push_back(val);
   }
}

int main() {
   freopen("hashuri.in", "r", stdin);
   freopen("hashuri.out", "w", stdout);

   scanf("%d", &N);


   for (int i = 0; i < N; ++i) {
      int t, val;
      scanf("%d %d", &t, &val);

      if (t == 1) {
         insert_val(val);
      } else if (t == 2) {
         erase_val(val);
      } else {
         bool f = find_val(val);
         printf("%d\n", f);
      }
   }

   return 0;
}