Cod sursa(job #1685152)

Utilizator adiXMGemene Adrian adiXM Data 11 aprilie 2016 15:42:46
Problema Hashuri Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 1.15 kb
/*
It always seems impossible until its done.
**/
#include <bits/stdc++.h>
using namespace std;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
const int MOD=100003;
struct Hash{
    vector < int > v[MOD];
    inline void Add(int x)
    {
        if(Search(x))
            return;
        v[x%MOD].push_back(x);
    }
    inline bool Search(int x)
    {
        int r=x%MOD;
        for(vector <int> ::iterator it=v[r].begin();it!=v[r].end();it++)
        {
            if(*it==x)
                return 1;
            return 0;
        }
    }
    inline void Remove(int x)
    {
        int r=x%MOD;
        int sz=v[r].size();
        for(int i=0;i<sz;i++)
        {
            if(v[r][i]==x)
            {
                v[r][i]=v[r][sz-1];
                v[r].pop_back();
                return;
            }
        }
    }

};
Hash H;
int main()
{
    int n,x,tip;
    f>>n;
    for(int i=1;i<=n;i++)
    {
        f>>tip>>x;
        if(tip==1)
            H.Add(x);
        else
            if(tip==2)
                H.Remove(x);
        else
            g<<H.Search(x)<<"\n";
    }
    return 0;
}