Cod sursa(job #2429847)

Utilizator mariasmmskklns mariasmm Data 11 iunie 2019 15:23:39
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.28 kb
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
const int NMax=2e6/3+1;
vector <int> v[NMax];

int cautare(int n, int caz)
{
    bool ok=false;
    unsigned int i;
    for (i=0; i<v[n%NMax].size(); i++)
        if (n==v[n%NMax][i])
            {
                ok=true;
                break;
            }
    switch (caz)
    {case 1:
        if (ok)
            return 1;
        return 0;
        break;
    default:
        return i;
        break;
    }
}
void stergere (int n, int poz)
{
    v[n%NMax].erase(v[n%NMax].begin()+poz);
}


void inserare(int n)
{
    v[n%NMax].push_back(n);
}

int main()
{
    ifstream f("hashuri.in");
    ofstream g("hashuri.out");
    int n, operatie, numar;
    f>>n;
    for (int i=1; i<=n; i++)
    {
        f>>operatie>>numar;
        switch (operatie)
        {
        case 1:
            if (!cautare(numar, 1))
                inserare(numar); break;
        case 2:
            if (cautare(numar, 1))
            {
                int p=cautare(numar, 2);
                stergere(numar,p);
            }
            break;
        default:
            if(cautare(numar, 1))
                g<<"1\n"; else
                g<<"0\n";
        }
    }
    return 0;
}