Cod sursa(job #1150189)

Utilizator Claudiu95Vartolomei Alexandru Claudiu Claudiu95 Data 22 martie 2014 17:33:16
Problema Hashuri Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 1.14 kb
#include<fstream>
#define MOD 666013
#define MAXN 666016
#include<vector>
using namespace std;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
vector <long long int> G[MAXN];
int n,op;
long long int x;
int search(long long int x){
    int nr=0,poz=x%MOD;

    while(nr!=G[poz].size() && G[poz][nr]!=x)
        nr++;
    if(nr!=G[poz].size())

        return nr;
    return 0;
}
void adauga(long long int x){
    if(!search(x)){
      int  p=x%MOD;
        G[p].push_back(x);
    }
}
void sterge(long long int x){
     if( G[x%MOD].size() && G[x%MOD][0]==x)
            G[x%MOD].erase(G[x%MOD].begin());
                //G[x%MOD][0]=-1;
    else{
    int p=search(x);
    if(p)
        G[x%MOD].erase(G[x%MOD].begin()+p);
    }

}

int main(){
f>>n;
    for(int i=1;i<=n;++i){

        f>>op>>x;
        if(op==1)
            adauga(x);
        else
            if(op==2)
                sterge(x);
            else{
                if(G[x%MOD].size()!=0 && G[x%MOD][0]==x)
                    g<<"1\n";
                else
                g<<search(x)<<'\n';
            }
         //afis(i);
    }
}