Nu aveti permisiuni pentru a descarca fisierul grader_test7.in
Cod sursa(job #808540)
Utilizator | Data | 6 noiembrie 2012 21:27:29 | |
---|---|---|---|
Problema | Hashuri | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.94 kb |
#include <iostream>
#include <fstream>
#include <vector>
#define mod 666013
using namespace std;
vector <long> hash[mod];
void insert ( long x)
{
long k=x%mod;
for (long i=0; i<hash[k].size(); i++)
if (hash[k][i] == x) return ;
hash[k].push_back(x);
}
void deelet (long long x)
{
long k= x%mod;
long p,a,b;
long ok=0;
for ( long i=0; i<hash[k].size();i++)
if (hash[k][i] == x)
{
ok=1;
p=i;
}
if (ok==1)
{
a= hash[k].size()-1;
b= hash[k][a];
hash[k][a]=hash[k][p];
hash[k][p]=b;
hash[k].pop_back();
}
}
long find (long x)
{
long k=x%mod;
long i;
for (i=0;i<hash[k].size();i++)
{
if (hash[k][i] == x) return 1;
}
return 0;
}
int main ()
{
ifstream in("hashuri.in");
ofstream out("hashuri.out");
long n,op,x,i;
in>>n;
for (i=0;i<n;i++)
{
in>>op>>x;
if (op==1)
{
insert(x);}
else
if (op==2)
{
deelet(x);
}
else
if (op==3)
{
out<<find(x)<<'\n';
}
}
return 0;
}