Pagini recente » Cod sursa (job #2977752) | Cod sursa (job #687868) | Cod sursa (job #2977357) | Cod sursa (job #676628) | Cod sursa (job #2894248)
#include <iostream>
#include <fstream>
#include <vector>
#define PRIM 666013
std::vector <int> table[PRIM]; // un array de vectori din stl care mimeaza lista aia
int n;
std::vector<int>::iterator getIterator(int element) {
int rest = element % PRIM;
std::vector<int>::iterator ptr (table[rest].begin());
for(ptr; ptr < table[rest].end(); ++ptr) {
if(*ptr == element) {
return ptr;
}
}
return table[rest].end();
}
bool exista(int arg) {
int rest = arg % PRIM;
if (getIterator(arg) != table[rest].end())
return 1;
return 0;
}
void adauga(int arg) {
if(!exista(arg)) {
int rest = arg % PRIM;
table[rest].push_back(arg);
}
}
void sterge(int arg) {
if(exista(arg)) {
int rest = arg % PRIM;
table[rest].erase(getIterator(arg));
}
}
int main()
{ int operatie, argument;
std::ifstream fileIn("hashuri.in");
std::ofstream fileOut("hashuri.out");
fileIn >> n;
for( int i = 0; i < n ; ++i) {
fileIn >> operatie;
fileIn >> argument;
switch (operatie) {
case 1 : {
adauga(argument);
break;
}
case 2 : {
sterge(argument);
break;
}
case 3: {
fileOut << exista(argument) << '\n';
break;
}
}
}
return 0;
}