Cod sursa(job #611626)

Utilizator valentin.harsanValentin Harsan valentin.harsan Data 2 septembrie 2011 13:43:47
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.07 kb
#include<iostream>
#include<fstream>
#include<list>
using namespace std;

ifstream in("hashuri.in");
ofstream out("hashuri.out");

int n;
list<int> l[666013];

inline int h(int q) {
    return q%666013;
}

inline int findd(int nr) {

    list<int>::iterator it;

    for(it=l[h(nr)].begin();it!=l[h(nr)].end(); ++it)
        if((*it)==nr) {
            return 1;

            break;
        }

    return 0;

}

inline void adauga(int nr) {

    if(findd(nr)==0)
        l[h(nr)].push_front(nr);

}

inline void sterge(int nr) {

    list<int>::iterator it;

    for(it=l[h(nr)].begin();it!=l[h(nr)].end(); ++it)
        if((*it)==nr) {
            l[h(nr)].erase(it);

            break;
        }

}

int main() {
    int i,op,nr;

    in >> n;

    for(i=1;i<=n;++i) {

        in >> op >> nr;

        switch(op) {
        case 1:
            adauga(nr);
            break;
        case 2:
            sterge(nr);
            break;
        case 3:
            out << findd(nr) << "\n";
        }

    }

    return 0;
}