Cod sursa(job #2661877)

Utilizator Ana_22Ana Petcu Ana_22 Data 22 octombrie 2020 20:28:08
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Temă vectori frecvență & hashing clasa a 9-a Marime 1.15 kb
#include <stdio.h>
#include <vector>

using namespace std;

#define MOD 1777

vector<int> myHash[MOD];

int cauta( int x ) {
  int cod = x % MOD;
  unsigned int i = 0;
  while( i < myHash[cod].size() && myHash[cod][i] != x )
    i++;
  return i < myHash[cod].size();
}

void adauga( int x ) {
  int cod = x % MOD;
  unsigned int i = 0;
  while( i < myHash[cod].size() && myHash[cod][i] != x )
    i++;
  if( i == myHash[cod].size() )
    myHash[cod].push_back( x );
}

void sterge( int x ) {
  int cod = x % MOD;
  unsigned int i = 0;
  while( i < myHash[cod].size() && myHash[cod][i] != x )
    i++;
  if( i < myHash[cod].size() )
    myHash[cod].erase( myHash[cod].begin() + i );
}

int main() {
    FILE *fin, *fout;
    int n, i, op, x;
    fin = fopen( "hashuri.in", "r" );
    fout = fopen( "hashuri.out", "w" );
    fscanf( fin, "%d", &n );
    for( i = 0; i < n; i++ ) {
      fscanf( fin, "%d%d", &op, &x );
      if( op == 1 )
        adauga( x );
      else if( op == 2 )
        sterge( x );
      else
        fprintf( fout, "%d\n", cauta( x ) );
    }
    fclose( fout );
    fclose( fin );
    return 0;
}