Cod sursa(job #2909796)

Utilizator petru-robuRobu Petru petru-robu Data 15 iunie 2022 21:03:49
Problema Hashuri Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.02 kb
	
#include <fstream>
#include <vector>
#include <algorithm>
 
using namespace std;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
#define MOD 666013
 
vector<int> h[MOD];
 
int f(int x) {
     return x % MOD;
}
 
bool cauta(int x) {
     int nr = f(x);
     int i = 0;
     while(i < h[nr].size() && h[nr][i] != x)i++;
     if(i < h[nr].size())return 1;
     else return 0;
}
 
void adauga(int x) {
     if(cauta(x) == 0){
          int nr = f(x);
          h[nr].push_back(x);
     }
}
 
void sterge(int x) {
     int i = 0,nr = f(x);
     while(i < h[nr].size() && h[nr][i] != x){
          i++;
     }
     if(i < h[nr].size()){
          swap(h[nr][i],h[nr].back());
          h[nr].pop_back();
     }
}
 
int main()
{
     int n,i,cer,nr;
     fin>>n;
     for(i = 0;i < n;i++){
          fin>>cer>>nr;
          if(cer == 1){
               adauga(nr);
          }else if(cer == 2){
               sterge(nr);
          }else fout<<cauta(nr)<<'\n';
     }
     return 0;
}