Cod sursa(job #568199)

Utilizator MciprianMMciprianM MciprianM Data 30 martie 2011 21:58:50
Problema Hashuri Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include<fstream>

#include<vector>
#define prim 700001
using namespace std;
vector<int>a[(1<<20)];
unsigned A = ((1u<<31)|3462875);

vector<int>::iterator cauta(int x){
  vector<int>::iterator it;
  int l=(A*x>>12);
  for(it=a[l].begin();it!=a[l].end();++it)
    if(*it==x)
      return it;
  return a[l].end();
}
int main(){
  int n, i,cod;
  unsigned x;

  ifstream f("hashuri.in");
  ofstream g("hashuri.out");
  f>>n;
  for(i=0;i<n;i++)
  {
    f>>cod>>x;
    if(cod==1){
      if(cauta(x)==a[(A*x>>12)].end())
        a[(A*x>>12)].push_back(x);
    }
    else if(cod==3){
      if(cauta(x)!=a[(A*x>>12)].end())
           g<<"1\n";
      else g<<"0\n";
    }
    else if(cod==2){
          vector<int>::iterator it;
          it=cauta(x);
          if(it!=a[(A*x>>12)].end())
            a[(A*x>>12)].erase(it);
        }
    }
  f.close();
  g.close();
  return 0;
}