Pagini recente » Diferente pentru implica-te/extinde-arhiva intre reviziile 113 si 112 | Cod sursa (job #1524450) | Cod sursa (job #3300018) | Istoria paginii utilizator/prickle | Cod sursa (job #1549319)
#include <bits/stdc++.h>
using namespace std;
ifstream in("hashuri.in");
ofstream out("hashuri.out");
const int pat=666013;
vector <int> h[pat+5];
bool cauta(int x)
{
int r=x%pat;
int lg=h[r].size();
for(int i=0;i<lg;i++)
{
if(h[r][i]==x)
return 1;
}
return 0;
}
void add(int x)
{
if(cauta(x))
return;
int r=x%pat;
h[r].push_back(x);
}
void sterg(int x)
{
if(!cauta(x))
return;
int r=x%pat;
int lg=h[r].size();
for(int i=0;i<lg;i++)
if(h[r][i]==x)
{
swap(h[r][i],h[r].back());
h[r].pop_back();
}
}
int main()
{int n,i,t,x;
in>>n;
for(i=1;i<=n;i++)
{
in>>t>>x;
if(t==1)
{
add(x);
}
if(t==2)
{
sterg(x);
}
if(t==3)
{
out<<cauta(x)<<'\n';
}
}
return 0;
}