Pagini recente » Cod sursa (job #2134260) | Cod sursa (job #2392383) | Borderou de evaluare (job #2002023) | Cod sursa (job #1947611) | Cod sursa (job #2761627)
#include <iostream>
#include<vector>
#include<fstream>
using namespace std;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
const int prim = 123443;
vector<int> v[prim]; // 123443 e nr prim, penru dispersie
void adaugare (int x)
{
int poz, i;
poz = x % 123443;
for(i=0; i< v[poz].size(); i++)
if(v[poz][i] == x) //daca exista nu facem nimic
return;
v[poz].push_back(x); // daca nu, il adaugam
}
void stergere (int x)
{
int poz, i, lungime;
poz = x % 123443;
lungime = v[poz].size();
for(i=0; i< v[poz].size(); i++)
if(v[poz][i] == x)
{ // daca exita mutam pe pozitia lui ultimul element si apoi stergem ultima pozitie
v[poz][i] = v[poz][lungime-1];
v[poz].pop_back();
return;
}
}
int verificare ( int x)
{
int poz, i;
poz = x % 123443;
for( i =0; i< v[poz].size(); i++)
{
if(v[poz][i] == x)
return 1;
}
return 0;
}
int main()
{
int nr, operatie , x;
f>>nr; //citim numarul de oparatii
int i;
for(i=0; i<nr; i++){
f>>operatie;
f>>x;
if(operatie == 1)
adaugare(x);
else if(operatie == 2)
stergere(x);
else if (operatie == 3)
g<<verificare(x)<<'\n';
}
f.close();
g.close();
return 0;
}