Cod sursa(job #239189)

Utilizator Pepelea_FlaviuFlaviu Pepelea Pepelea_Flaviu Data 4 ianuarie 2009 12:54:18
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.6 kb
# include <cstdio>
# include <vector>

using namespace std;

# define FIN "hashuri.in"
# define FOUT "hashuri.out"
# define Mod 666013

int N, op, val;
vector <int> Hash[Mod];

     void add(int val)
     {
         int Pz = val % Mod;
         vector <int> :: iterator i;
         
         for (i = Hash[Pz].begin(); i < Hash[Pz].end(); ++i)
            if (*i == val) return;
         
         Hash[Pz].push_back(val);
     }
     
     void erase(int val)
     {
         int Pz = val % Mod;
         vector <int> :: iterator i;
         
         for (i = Hash[Pz].begin(); i < Hash[Pz].end(); ++i)
           if (*i == val)
              {
                 Hash[Pz].erase(i);
                 return;
              }
     }
     
     void find(int val)
     {
         int Pz = val % Mod;
         vector <int> :: iterator i;
         
         for (i = Hash[Pz].begin(); i < Hash[Pz].end(); ++i)
            if (*i == val)
               {
                   printf("1\n");
                   return;
               }
         
         printf("0\n");
     }

     int main()
     {
         freopen(FIN,"r",stdin);
         freopen(FOUT,"w",stdout);
         
         scanf("%d", &N);
         
         for (; N; --N)
            {
                scanf("%d%d",&op,&val);
                
                switch(op)
                   {
                       case 1: add(val);   break;
                       case 2: erase(val); break;
                       case 3: find(val);  break;
                   }
            }
         
         return 0;
     }