Pagini recente » Cod sursa (job #522927) | Cod sursa (job #878624) | Cod sursa (job #951364) | Cod sursa (job #3245843) | Cod sursa (job #1489598)
/*
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.
*/
#include <fstream>
#include <algorithm>
#include <vector>
#define Rest 751305
using namespace std;
int n;
vector <int> Hashuri [Rest];
int main()
{
ifstream in ("hashuri.in");
ofstream out ("hashuri.out");
in>>n;
while (in>>n)
{
switch (n)
{
case 1:
{
in>>n;
if (find(Hashuri[n%Rest].begin(),Hashuri[n%Rest].end(),n)==Hashuri[n%Rest].end())
{
Hashuri[n%Rest].push_back(n);
}
}break;
case 2:
{
in>>n;
if (find(Hashuri[n%Rest].begin(),Hashuri[n%Rest].end(),n)!=Hashuri[n%Rest].end())
{
Hashuri[n%Rest].erase(remove(Hashuri[n%Rest].begin(), Hashuri[n%Rest].end(), n), Hashuri[n%Rest].end());
}
}break;
case 3:
{
in>>n;
if (find(Hashuri[n%Rest].begin(),Hashuri[n%Rest].end(),n)!=Hashuri[n%Rest].end())
{
out<<'1'<<'\n';
}
else
{
out<<'0'<<'\n';
}
}break;
}
}
return 0;
}