Cod sursa(job #2365415)

Utilizator priboiraduPriboi Radu Bogdan priboiradu Data 4 martie 2019 13:32:36
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.01 kb
#include <bits/stdc++.h>
#define MOD 666013

std::vector< int > h[MOD];

int check( int nr ) {
  int blk = nr % MOD, i;
  i = 0;
  while ( i < h[blk].size() && h[blk][i] != nr )
    i++;
  if ( i < h[blk].size() ) //h[blk][i] == nr
    return i;
  return -1;
}

void add( int nr ) {
  int blk = nr % MOD;
  if ( check( nr ) == -1 )
    h[blk].push_back( nr );
}

void del( int nr ) {
  int blk = nr % MOD, pos = check( nr );
  if ( pos != -1 )
    h[blk].erase( h[blk].begin() + pos );
}

int main() {
  FILE *fin, *fout;
  int n, i, c, nr;
  fin = fopen( "hashuri.in", "r" );
  fout = fopen( "hashuri.out", "w" );
  fscanf( fin, "%d", &n );
  for ( i = 0; i < n; i++ ) {
    fscanf( fin, "%d%d", &c, &nr );
    if ( c == 1 ) {
      add( nr );
    } else if ( c == 2 ) {
      del( nr );
    } else if ( c == 3 ) {
      if ( check( nr ) == -1 )
        fprintf( fout, "0\n" );
      else
        fprintf( fout, "1\n" );
    }
  }
  fclose( fin );
  fclose( fout );
  return 0;
}