Cod sursa(job #2508939)

Utilizator euyoTukanul euyo Data 13 decembrie 2019 15:18:08
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.13 kb
#include <stdio.h>
#include <vector>
#define P 666013
#define MAXN 1000000

using namespace std;

vector<int> l[P];

int search1( int x, int nl ) {
  int i;

  i = 0;
  while ( i < l[nl].size() && l[nl][i] != x ) {
    ++i;
  }
  if ( i >= l[nl].size() ) {
    i = -1;
  }
  return i;
}

int main() {
  FILE *fin = fopen( "hashuri.in", "r" );
  FILE *fout = fopen( "hashuri.out", "w" );
  int n, in, op, x, nl, len, poz, aux;

  fscanf( fin, "%d", &n );
  for ( in = 0; in < n; ++in ) {
    fscanf( fin, "%d%d", &op, &x );
    nl = x % P;
    switch( op ) {
    case 1:
      if ( search1( x, nl ) == -1 ) {
        l[nl].push_back( x );
      }
      break;
    case 2:
      poz = search1( x, nl );
      if ( poz != -1 ) {
        len = l[nl].size() - 1;
        aux = l[nl][poz];
        l[nl][poz] = l[nl][len];
        l[nl][len] = aux;
        l[nl].pop_back();
      }
      break;
    case 3:
      if ( search1( x, nl ) != -1 ) {
        fprintf( fout, "1\n" );
      } else {
        fprintf( fout, "0\n" );
      }
      break;
    }
  }
  fclose( fin );
  fclose( fout );
  return 0;
}