Cod sursa(job #2632419)

Utilizator iulianarsenoiuArsenoiu Iulian iulianarsenoiu Data 3 iulie 2020 11:36:15
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.42 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
int n;
const int Mod = 666013;
class hes
{
    vector <int> h[Mod+5];
public:
    void Add(int val)
    {
        bool exista=false;
        int r = val%Mod;
        for(auto it : h[r])
        {
            if(it==val)
            {
                exista=true;
                break;
            }
        }
        if(exista)
        {
            return;
        }
        h[r].push_back(val);
    }
    void Remove(int val)
    {
        int r = val%Mod;
        vector <int> :: iterator it;
        for(it=h[r].begin();it!=h[r].end();it++)
        {
            if(*it==val)
            {
                h[r].erase(it);
                break;
            }
        }
    }
    bool Find(int val)
    {
        bool exista = false;
        int r = val%Mod;
        for(auto it : h[r])
        {
            if(it==val)
            {
                exista=true;
                break;
            }
        }
        return exista;
    }
};
hes H;
int main()
{
    f>>n;
    for(int i=1;i<=n;i++)
    {
        int t,val;
        f>>t>>val;
        if(t==1)
        {
            H.Add(val);
        }
        else if(t==2)
        {
            H.Remove(val);
        }
        else if(t==3)
        {
            g<<H.Find(val)<<'\n';
        }
    }
    return 0;
}