Cod sursa(job #2677741)

Utilizator dddddddaria ioana tanase dddddd Data 27 noiembrie 2020 12:10:35
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.55 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in("hashuri.in");
ofstream out("hashuri.out");
const int mod=301013;//avem nevoie doar de modul, nu si de baza, deoarece numerle nu sunt foarte mari
vector<int>v[mod+2];//in v[i] vom tine numerele cu acelasi rest la impartirea cu mod
long long trans(int a){//functie de calculate modulul
    return a%mod;
}
void put(int a){//functia de introducere in vector
    int p=trans(a);
    bool exist=false;
    for(int i=0;i<v[p].size();i++){//verificam daca exista sau nu elementul in sir
        if(v[p][i]==a){
            exist=true;
            break;
        }
    }
    if(exist==false){//daca nu exista il bagam
        v[p].push_back(a);
    }
}
void sterg(int a){//functia de stergere a elementelor din sir
    int p=trans(a);
    for(int i=0;i<v[p].size();i++){//cautam elementul
        if(v[p][i]==a){
            swap(v[p][i], v[p][v[p].size()-1]);
            v[p].pop_back();//stergem elementul cand l-am gasit
            break;
        }
    }
}
 bool exist(int a){//functia de verificare a existentei a unui element in sir
    int p=trans(a);
    for(int i=0;i<v[p].size();i++){//verificam daca exista
        if(v[p][i]==a){
            return 1;
        }
    }
    return 0;
}
int main()
{
    int n;
    in>>n;
    for(int i=0;i<n;i++){
        int x, y;
        in>>x>>y;
        if(x==1){
            put(y);
        }
        else if(x==2){
            sterg(y);
        }
        else{
            out<<exist(y)<<"\n";
        }
    }
    return 0;
}