Cod sursa(job #3277732)

Utilizator YuzukyIstrate Andreea Ruxandra Yuzuky Data 17 februarie 2025 12:46:09
Problema Hashuri Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.73 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
ifstream in("hashuri.in");
ofstream out("hashuri.out");
const int MOD = 666013;
const int MAX = 1000000;
int frecv[MAX], n;
vector<int> v;

int cautbin (int nr)
{
    int st=0, dr=v.size(), mij, poz=-1;
    if(st<=dr)
    {
        mij=(st+dr)/2;
        if(v[mij] < nr)
        {
            st++;
        }
        else
        {
            dr--;
            poz=mij;
        }
    }
    return poz;
}
int main()
{
    in>>n;
    for(int i=0; i<n; ++i)
    {
        int op, x;
        in>>op>>x;
        if(op==1) //se adauga daca nu e
        {
            if(!v.empty())
            {
                sort(v.begin(), v.end());
                int poz=cautbin(x);
                if(v[poz]!=x) //nu e in vector
                    v.push_back(x);
            }
            if(v.empty()) //dc e gol
            {
                v.push_back(x);
            }
        }
        else if(op==2) //se sterge daca nu e
        {
              if(!v.empty())
              {
                sort(v.begin(), v.end());
                int poz=cautbin(x);
                if(v[poz]==x) //nu e in vector
                    v[poz]=-1;
              }
        }
        else //afis 1 daca e in multime
        {
            sort(v.begin(), v.end());
            int poz=cautbin(x);
            if(v[poz]==x) //daca apare in mult
                out<<1<<'\n';
            else
                out<<0<<'\n';
        }
        cout<<" pentru "<<op<<" "<<x<<" poz in v "<<cautbin(x)<<'\n';
        /*for(int i=0; i<v.size(); ++i)
            cout<<v[i]<<" ";
        cout<<'\n';*/
    }
    return 0;
}