Cod sursa(job #265559)

Utilizator vlad_DVlad Dumitriu vlad_D Data 24 februarie 2009 02:11:57
Problema Hashuri Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <fstream>
#include <set>
#include <algorithm>

using namespace std;

set<int> Hash[1000];
const int M = 997;

inline int get_key(int X) {return X % M;}
inline void addHash(int X) {Hash[get_key(X)].insert(X);}
inline void eraseHash(int X) {
       int key = get_key(X);
       if (Hash[key].find(X) == Hash[key].end()) return;
       Hash[key].erase(Hash[key].find(X));
       }
inline int isHash(int X) {
       int key = get_key(X);
       if (Hash[key].find(X) != Hash[key].end()) return 1;
       return 0;
       }
int main() {
    ifstream fin("hashuri.in");
    ofstream fout("hashuri.out");
    
    int n;
    fin >> n;
    while (n--) {
          int op, X;
          fin >> op >> X;
          if (op == 1) addHash(X);
          if (op == 2) eraseHash(X);
          if (op == 3) fout << isHash(X) << '\n';
          }
    return 0;
    }