Pagini recente » Cod sursa (job #660610) | Cod sursa (job #67059) | Cod sursa (job #2627888) | Cod sursa (job #550340) | Cod sursa (job #1047605)
#include <iostream>
#include <fstream>
#include <vector>
#define nr_zone 666013
using namespace std;
vector<int> hash[nr_zone];
int cautare(vector<int> hash[nr_zone], int val){
int zona=val%nr_zone;
int i;
for(i=0;i<hash[zona].size();i++)
//cout<<hash[zona][i];
if(hash[zona][i]==val)
return i;
return -1;
}
void inserare(vector<int> hash[nr_zone], int val){
int zona=val%nr_zone;
if(cautare(hash, val)>-1)
return;
//cout<<zona;
hash[zona].push_back(val);
//cout<<hash[zona][0];
}
void sterge(vector<int> hash[nr_zone], int val){
int poz=cautare(hash, val);
if(poz!=-1){
int zona=val%nr_zone;
hash[zona][poz]=hash[zona].back();
hash[zona].pop_back();
}
}
int main(){
long n,i,op,x;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
f>>n;
for(i=0;i<n;i++){
f>>op>>x;
if(op==1)
inserare(hash,x);
else if(op==2)
sterge(hash,x);
else if(op==3)
if(cautare(hash,x)>-1)
g<<1<<'\n';
else g<<0<<'\n';
}
return 0;
}
/*
---70-80 puncte---
#include <iostream>
#include <fstream>
#include <set>
using namespace std;
int main(){
set<long> a;
long n,i,op,x;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
f>>n;
for(i=0;i<n;i++){
f>>op>>x;
if(op==1)
a.insert(x);
else if(op==2)
a.erase(x);
else if(op==3)
g<<(a.find(x)!=a.end())<<'\n';
}
return 0;
}*/
/*
---30 puncte---
#include <iostream>
#include <fstream>
using namespace std;
long long n,i,op,x,ap[200000000];
int main()
{
ifstream f("hashuri.in");
ofstream g("hashuri.out");
f>>n;
for(i=0;i<n;i++){
f>>op>>x;
if(op==1)
ap[x]='1';
else if(op==2)
ap[x]='0';
else if(op==3)
if(ap[x]=='1')
g<<'1'<<'\n';
else g<<'0'<<'\n';
}
return 0;
}
---30 puncte---
*/