Mai intai trebuie sa te autentifici.
Cod sursa(job #2700844)
| Utilizator | Data | 29 ianuarie 2021 01:05:10 | |
|---|---|---|---|
| Problema | Hashuri | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 1.16 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
const int MOD = 666019;
const int N = 1000005;
int val[N], urm[N], lst[MOD], nr;
void adauga(int x)
{
int categorie = x % MOD;
val[++nr] = x;
urm[nr] = lst[categorie];
lst[categorie] = nr;
}
bool cauta(int x)
{
int categorie = x % MOD;
int p = lst[categorie];
while(p != 0 && val[p] != x)
{
p = urm[p];
}
if(p)
return true;
return false;
}
void sterge(int x)
{
int categorie = x % MOD;
int p = lst[categorie];
while(p != 0 && val[p] != x)
{
p = urm[p];
}
if(p != 0)
{
swap(val[p],val[lst[categorie]]);
lst[categorie] = urm[lst[categorie]];
}
}
int main()
{
int operatii;
fin >> operatii;
while(operatii--)
{
int tip_operatie, val;
fin >> tip_operatie >> val;
if(tip_operatie == 1)
adauga(val);
if(tip_operatie == 2)
sterge(val);
if(tip_operatie == 3)
fout << cauta(val) << '\n';
}
return 0;
}
