Cod sursa(job #949707)

Utilizator Andrei1998Andrei Constantinescu Andrei1998 Data 14 mai 2013 19:04:57
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
#include <fstream>
#include <list>

using namespace std;
//#define mod 666013
#define mod 524287 //2^19-1
list<int> v[mod];

list<int>::iterator find(int x)
{
   int b=x%mod;
   list<int>::iterator it;
   for(it=v[b].begin();it!=v[b].end();it++)
     if((*it)==x)
       break;
   return it;
}

inline void add(int x)
{
   int b=x%mod;  
   if(find(x)==v[b].end())
      v[b].push_back(x);    
}

inline void del(int x)
{
  int b=x%mod;   
  if(find(x)!=v[b].end())
     v[b].remove(x);     
}

int main()
{
    ifstream cin("hashuri.in");
    ofstream cout("hashuri.out");
    
    int n,x,cod,i;
    cin>>n;
    
    for(i=0;i<n;i++)
    {
       cin>>cod>>x;
       
       if(cod==1)
         add(x);
       else if(cod==2)
         del(x);
       else if(cod==3)
       {
         if(find(x)==v[x%mod].end())
           cout<<"0\n";
         else
           cout<<"1\n";     
       }                
    }
    
    
    cin.close();
    cout.close();
    //system("PAUSE");
    return 0;
}