Pagini recente » Solutia problemei shoturi | Cod sursa (job #1949079) | Cod sursa (job #1999448) | Cod sursa (job #454795) | Cod sursa (job #1150189)
#include<fstream>
#define MOD 666013
#define MAXN 666016
#include<vector>
using namespace std;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
vector <long long int> G[MAXN];
int n,op;
long long int x;
int search(long long int x){
int nr=0,poz=x%MOD;
while(nr!=G[poz].size() && G[poz][nr]!=x)
nr++;
if(nr!=G[poz].size())
return nr;
return 0;
}
void adauga(long long int x){
if(!search(x)){
int p=x%MOD;
G[p].push_back(x);
}
}
void sterge(long long int x){
if( G[x%MOD].size() && G[x%MOD][0]==x)
G[x%MOD].erase(G[x%MOD].begin());
//G[x%MOD][0]=-1;
else{
int p=search(x);
if(p)
G[x%MOD].erase(G[x%MOD].begin()+p);
}
}
int main(){
f>>n;
for(int i=1;i<=n;++i){
f>>op>>x;
if(op==1)
adauga(x);
else
if(op==2)
sterge(x);
else{
if(G[x%MOD].size()!=0 && G[x%MOD][0]==x)
g<<"1\n";
else
g<<search(x)<<'\n';
}
//afis(i);
}
}