Cod sursa(job #2194835)

Utilizator PetyAlexandru Peticaru Pety Data 14 aprilie 2018 13:52:40
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.2 kb
#include <bits/stdc++.h>

using namespace std;

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

struct nod {
  int info;
  nod *urm;
} *h[204238], *p;


int tip, x, n;

int mod = 204237;

int main()
{
  fin >> n;
  for (int i = 1; i <= n; i++) {
    fin >> tip >> x;
    int r = x % mod;
    if (h[r] == NULL) {
      if (tip == 1) {
          p = new nod;
          p -> info = x;
          p -> urm = h[r];
          h[r] = p;
        }
        if (tip == 3)
          fout << 0 << "\n";
    }
    else if (h[r] -> info == x) {
      if (tip == 2)
        h[r] = h[r] -> urm;
      if (tip == 3)
        fout << 1 << "\n";
    }
    else {

      for (p = h[r]; p -> urm != NULL && p -> urm -> info != x; p = p -> urm);
      if (p -> urm == NULL) {
        if (tip == 1) {
          p = new nod;
          p -> info = x;
          p -> urm = h[r];
          h[r] = p;
        }
        if (tip == 3)
          fout << 0 << "\n";
      }
      else {
        if (tip == 2) {
          nod *q = p -> urm;
          p -> urm = q -> urm;
          delete q;
        }
        if (tip == 3)
          fout << 1 << "\n";
      }
    }
  }
  return 0;
}