Pagini recente » Cod sursa (job #1729999) | Cod sursa (job #2620253) | Cod sursa (job #2713236) | Cod sursa (job #1585221) | Cod sursa (job #2808896)
#include <bits/stdc++.h>
#define MOD 666013
using namespace std;
class prs{
private:
FILE *fin;
char *buff;
int sp;
char read_ch(){
++sp;
if(sp==4096){
sp=0;
fread(buff,1,4096,fin);
}
return buff[sp];
}
public:
prs(const char *name){
fin=fopen(name,"r");
buff=new char[4096]();
sp=4095;
}
prs& operator >> (int &n){
char c;
while(!isdigit(c=read_ch()));
n=c-'0';
while(isdigit(c=read_ch()))
n=n*10+c-'0';
return *this;
}
};
FILE *g=fopen("hashuri.out","w");
vector <int> r[MOD+5];
int n,x,op;
static void adauga(int x){
int currentline=x%MOD;
r[currentline].push_back(x);
}
inline vector<int>::iterator gasire(int x){
int currentline=x%MOD;
for(vector <int>::iterator it=r[currentline].begin();it!=r[currentline].end();++it)
if(*it==x)
return it;
return r[currentline].end();
}
static void sterge(int x){
int currentline=x%MOD;
vector <int>::iterator it=gasire(x);
if(it!=r[currentline].end())
r[currentline].erase(it);
}
int main()
{
prs fin("hashuri.in");
fin>>n;
for(int i=0;i<n;++i){
fin>>op>>x;
if(op==1)adauga(x);
else if(op==2)sterge(x);
else fprintf(g,"%d\n",(gasire(x)==r[x%MOD].end()?0:1));
}
}