Pagini recente » Cod sursa (job #1101149) | Cod sursa (job #2743915) | Cod sursa (job #1089587) | Cod sursa (job #707491) | Cod sursa (job #2677741)
#include <bits/stdc++.h>
using namespace std;
ifstream in("hashuri.in");
ofstream out("hashuri.out");
const int mod=301013;//avem nevoie doar de modul, nu si de baza, deoarece numerle nu sunt foarte mari
vector<int>v[mod+2];//in v[i] vom tine numerele cu acelasi rest la impartirea cu mod
long long trans(int a){//functie de calculate modulul
return a%mod;
}
void put(int a){//functia de introducere in vector
int p=trans(a);
bool exist=false;
for(int i=0;i<v[p].size();i++){//verificam daca exista sau nu elementul in sir
if(v[p][i]==a){
exist=true;
break;
}
}
if(exist==false){//daca nu exista il bagam
v[p].push_back(a);
}
}
void sterg(int a){//functia de stergere a elementelor din sir
int p=trans(a);
for(int i=0;i<v[p].size();i++){//cautam elementul
if(v[p][i]==a){
swap(v[p][i], v[p][v[p].size()-1]);
v[p].pop_back();//stergem elementul cand l-am gasit
break;
}
}
}
bool exist(int a){//functia de verificare a existentei a unui element in sir
int p=trans(a);
for(int i=0;i<v[p].size();i++){//verificam daca exista
if(v[p][i]==a){
return 1;
}
}
return 0;
}
int main()
{
int n;
in>>n;
for(int i=0;i<n;i++){
int x, y;
in>>x>>y;
if(x==1){
put(y);
}
else if(x==2){
sterg(y);
}
else{
out<<exist(y)<<"\n";
}
}
return 0;
}