Cod sursa(job #2108497)

Utilizator karenalo13Diaconu Iulian Andrei karenalo13 Data 18 ianuarie 2018 14:16:14
Problema Hashuri Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.17 kb
#include <fstream>
#include <bits/stdc++.h>
#define m 524287
using namespace std;
ifstream f("hashuri.in");
ofstream g("hashuri.out");

vector <long long int> v[m];

int gaseste(int x)
{
    for(int i=0;i<v[x%m].size();++i)
        if(v[x%m][i]==x)
            return i; ///returnez pozitia daca il gasesc
    return -1; ///-1 daca nu l-am gasit
}

void sterge(int x, int pozitie)
{
    for(int i=pozitie;i<v[x%m].size()-1;++i)
        v[x%m][i]=v[x%m][i+1];
    v[x%m].resize(v[x%m].size()-1);
}

int main()
{
    int n;
    f>>n;
    for(int i=1;i<=n;++i)
    {
        int op;
        long long int x;
        f>>op>>x;
        int pozitie=gaseste(x);

        if (op==1){
            if(pozitie==-1)
                v[x%m].push_back(x);
            break;// op -> 1 : adauga x in multime
}
        if (op==2)
            {if(pozitie!=-1)
                sterge(x,pozitie);
            break;// op -> 2 : sterge x din multime
            }
        if (op==3)
            {if(pozitie==-1)
                g<<0<<'\n';
            else g<<1<<'\n';
            break;// op -> 3 : verifica daca x e in multime
        }
    }

    return 0;
}