Cod sursa(job #2739985)

Utilizator linte_robertLinte Robert linte_robert Data 10 aprilie 2021 21:05:56
Problema Hashuri Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.53 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <stack>
#include <deque>
#include <queue>
#include <cstring>
using namespace std;
void operatie_1(int x, vector < vector < int > > &liste){
    int ok = 0;
    for( int i = 0; i < liste[x % 6703].size() && ok == 0; i++ ){
        if( liste[x % 6703][i] == x ) ok = 1;
    }
    if( ok == 0 ) liste[x % 6703].push_back(x);
}
void operatie_2(int x, vector < vector < int > > &liste ){
    int pozitie = -1, ok = 0;
    for( int i = 0; i < liste[x % 6703].size() && ok == 0; i++ ){
        if( liste[x % 6703][i] == x ){
            pozitie = i;
            ok = 1;
        }
    }
    if( pozitie != -1 ){
        liste[x % 6703][pozitie] = liste[x % 6703][liste[x % 6703].size()-1];
        liste[x % 6703].pop_back();
    }
}
int operatie_3(int x, vector < vector < int > > liste ){
    int ok = 0;
    for( int i = 0; i < liste[x % 6703].size() && ok == 0; i++ ){
        if( liste[x % 6703][i] == x ) ok = 1;
    }
    return ok;
}
int main(){
    vector < vector < int > > liste;
    int n;
    ifstream fin("hashuri.in");
    ofstream fout("hashuri.out");
    for( int i = 0; i < 6703; i++){
        vector < int > v;
        liste.push_back(v);
    }
    fin >> n;
    for( int i = 0; i < n; i++ ){
        int operatie, x;
        fin >> operatie;
        fin >> x;
        if( operatie == 1 ) operatie_1(x, liste);
        if( operatie == 2 ) operatie_2(x, liste);
        if( operatie == 3 ) fout << operatie_3(x, liste) << endl;
    }
}