Cod sursa(job #1609281)

Utilizator gabime11Gabriel gabime11 Data 22 februarie 2016 18:28:28
Problema Hashuri Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 2.09 kb
/*Fie o multime de numere naturale initial vida. Asupra acestei multimi se efectueaza operatii de urmatoarele tipuri:

operatia de tipul 1: se adauga elementul x la multime (unde x este un parametru al operatiei). Daca x este deja in multime, atunci aceasta ramane neschimbata.
operatia de tipul 2: se sterge elementul x, daca acesta este deja in multime. In caz contrar, multimea ramane neschimbata.
operatia de tipul 3: returneaza 1 daca si numai daca x este in multime, iar in caz contrar returneaza 0.
hashuri.in	            hashuri.out
7                            0
1 3                          1
1 20                         0
2 7
3 4
3 20
2 20
3 20*/
#include<iostream>
#include<fstream>
using namespace std;
int v[1000001];
int main()
{
    int i,j,k,N,z=0,ok,y;
    ifstream fin("hashuri.in");
    ofstream fout("hashuri.out");
    fin>>N;
    for(k=1;k<=N;k++)
    {
        fin>>i>>j;
        if(i==1)
        {
            ok=0;
            for(int t=1; t<=z;t++)
            {
                if(j==v[t])
                {
                    ok=1;
                }
            }
            if(ok==0)
            {
                z++;
                v[z]=j;
            }
        }
        else
        {
            if(i==2)
            {
                ok=0;
                for(int t=1;t<=z;t++)
                {
                    if(j==v[t])
                    {
                        ok=1;
                        y=i;
                    }
                }
                if(ok==1)
                {

                    for(int t=y;t<=z;t++)
                    {
                        v[t]=v[t+1];
                    }
                    z--;
                }
            }
            else
            {
                ok=0;
                for(int t=1;t<=z;t++)
                {
                    if(j==v[t])
                    {
                        ok=1;
                    }
                }
                fout<<ok<<'\n';
            }
        }
    }
    fin.close();
    fout.close();
    return 0;
}