Cod sursa(job #2896042)

Utilizator ScoveargaIlie Andrei-Virgil Scovearga Data 29 aprilie 2022 19:23:12
Problema Hashuri Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.3 kb
#include <iostream>
#include <fstream>
#include <queue>

using namespace std;

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

int N, operatie, k = 666015;
long long numar;
vector<int> v[666016];

void operatie1(int numar, int h)
{
    int ok = 0;
    for (int i = 0; i < v[h].size(); ++i)
        if(v[h][i] == numar)
            ok = 1;
    if(ok == 0)
        v[h].push_back(numar);
}

void operatie2(int numar, int h)
{
    int poz = -1;
    for (int i = 0; i < v[h].size(); ++i)
        if(v[h][i] == numar)
        {
            poz = i;
            break;
        }
    if(poz != -1)
    {
        swap(v[h][poz], v[h][v[h].size() - 1]);
        v[h].pop_back();
    }
}

int operatie3(int numar, int h)
{
    for(int i = 0; i < v[h].size(); ++i)
        if(v[h][i] == numar)
            return 1;
    return 0;
}

int main()
{
    f>>N;
    for(int i = 0; i < N; ++i)
    {
        f>>operatie>>numar;
        int h = numar % k;
        switch (operatie) {
            case 1:
            {
                operatie1(numar, h);
                break;
            }
            case 2:
            {
                operatie2(numar, h);
                break;
            }
            case 3:
            {
                g<<operatie3(numar, h)<<'\n';
                break;
            }
        }
    }
    return 0;
}