Cod sursa(job #641718)

Utilizator SimeneSimene Robert Simene Data 29 noiembrie 2011 11:35:42
Problema Hashuri Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.19 kb
#include <cstdlib>
#include <iostream>
#include<vector>
#include<stdio.h>
using namespace std;
#define prim 666013
int n;
vector<int> v[prim];
inline vector<int>::iterator cautare(int val)
{
int list = val % prim;
vector<int>::iterator it;
for (it = v[list].begin(); it != v[list].end(); ++it)
     if (*it == val)
     return it;
return v[list].end();
}
inline void sterg(int val)
{int list=val % prim;
     vector<int>::iterator it=cautare(val);
     if(it!=v[list].end())
                          v[list].erase(it);
     }
inline void adaug(int val)
{int list=val%prim;
     if(cautare(val)==v[list].end());
     v[list].push_back(val);
}
int main(int argc, char *argv[])
{int operatie,valoare;
 freopen("hashuri.in","r",stdin);
 freopen("hashuri.out","w",stdout);
 scanf("%d",&n);
 for (int i=1;i<=n;i++)
 {
     scanf("%d %d",&operatie,&valoare);
     if (operatie==1) { adaug(valoare);
                        continue;
                        }
     if (operatie==2) { sterg(valoare);
                        continue;
                      }
    printf("%d\n",cautare(valoare)!=v[valoare % prim].end());
 }
    
    
    system("PAUSE");
    return EXIT_SUCCESS;
}