Pagini recente » Cod sursa (job #981537) | Cod sursa (job #2171419) | Cod sursa (job #1832333) | thrice | Cod sursa (job #869827)
Cod sursa(job #869827)
#include<vector>
#include<cstdio>
using namespace std;
const int MOD = 666023;
vector <int> table[MOD];
void adauga(int val){
int x=val%MOD, l=table[x].size();
if(l==0)
{table[x].push_back(val); return; }
for(int i=0; i<=l; i++)
if(table[x][i]>val){
table[x].insert(table[x].begin(), val, i);
i=l;
}
}
void elim(int val){
int x=val%MOD, l=table[x].size();
if(l==0) return;
for(int i=0; i<=l; i++)
if(table[x][i]==val){
table[x].erase(table[x].begin() + i);
i=l;
}
}
bool exists(int val){
int x=val%MOD, l=table[x].size();
if(l==0) return false;
for(int i=0; i<=l; i++)
if(table[x][i]==val)
return true;
else if(table[x][i]>val)
return false;
}
int main(){
FILE *in=fopen("hashuri.in","r"), *out=fopen("hashuri.out","w");
int q, type, val;
fscanf(in, "%d\n", &q);
for(int i=1; i<=q; i++){
fscanf(in, "%d %d\n", &type, &val);
if(type==1)
adauga(val);
else if(type==2)
elim(val);
else if(type==3)
fprintf(out, "%d\n", exists(val));
}
return 0;
}