Cod sursa(job #2909912)

Utilizator aminaAmina Suciu amina Data 16 iunie 2022 20:07:36
Problema Potrivirea sirurilor Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <iostream>
#include<vector>
using namespace std;
const int m=666013;
vector<int>table[m];



int hashfind(int x)
{
 int id=x%m;
 for(int i=0; i<table[id].size(); i++)
        if (x==table[id][i])return 1;
 return 0;
}


void hashinsert(int x)
{
   if(hashfind(x)==0) {
    int id=x%m;
    table[id].push_back(x);

   }
}
void hashdelete(int x)
{
    if(hashfind(x)==1){
        int id=x%m;
        for(int i=0; i<table[id].size(); i++)
        if(x==table[id][i]){swap(table[id][i], table[id][table[id].size()-1]);
        table[id].pop_back();}
    }
}



int main()
{
    freopen("hashuri.in", "r", stdin);
    freopen("hashuri.out", "w", stdout);
    int N;
    scanf("%d", &N);
    for(;N-->0;)
    {
        int op,x;
        scanf("%d%d", &op, &x);
        if(op==1)hashinsert(x);
        if(op==2)hashdelete(x);
        if(op==3)printf("%d\n",hashfind(x));
    }


}