Pagini recente » Monitorul de evaluare | Cod sursa (job #2501416) | Cod sursa (job #2708115) | Cod sursa (job #1447778) | Cod sursa (job #1045951)
//#include "stdafx.h"
#include <vector>
#include <ostream>
#include <sstream>
#include <fstream>
#include <stdio.h>
using namespace std;
#define MOD 666013
vector<int> H[MOD];
int cauta(int val)
{
int unde = val % MOD;
vector<int>::iterator it;
for (it = H[unde].begin(); it != H[unde].end(); ++it)
if (*it == val)
return 1;
return 0;
}
void insert(int val)
{
int unde = val % MOD;
H[unde].push_back(val);
}
int sterge(int val)
{
int unde = val % MOD;
for(int i = 0; i<H[unde].size(); i++)
if(H[unde][i]==val)
{
H[unde][i]=H[unde].back();
H[unde].pop_back();
return 1;
}
return 0;
}
int main()
{
fstream f, g;
f.open("hashuri.in", ios::in);
g.open("hashuri.out", ios::out);
int n, op, x;
f>>n;
for(int i=1;i<=n;i++)
{
f>>op>>x;
if(op==1)
if(!cauta(x))
insert(x);
else if(op==2)
if(cauta(x))
sterge(x);
else if(op==3)
if(cauta(x))
g<<1<<"\n";
else
g<<0<<"\n";
}
f.close();
g.close();
return 0;
}