Cod sursa(job #2742854)

Utilizator linte_robertLinte Robert linte_robert Data 22 aprilie 2021 00:36:44
Problema Hashuri Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.56 kb

#include <iostream>
#include <fstream>
#include <vector>
#include <stack>
#include <deque>
#include <queue>
#include <cstring>
using namespace std;
int hash0( int x, int n){
    return x % n;
}
void operatie_1 ( int x, vector < int > & v ){
    int i = 0, ok = 1;
    while( i < v.size() && ok==1 ){
        if( v[i] == x ){
            ok = 0;
        }
        i++;
    }
    if( ok ==1 ) v.push_back( x );
}
void operatie_2 ( int x, vector < int > & v ){
    int i = 0, ok = 1 ;
    while ( i < v.size() && ok == 1 ){
        if ( v[i] == x ){
            v[i] = v[ v.size() - 1 ];
            v.pop_back();
            ok = 0;
        }
        i++;
    }
}
int operatie_3 ( int x, vector < int > v ){
    int i = 0 , ok = 1 ;
    while ( i < v.size() && ok == 1 ){
        if ( v[i] == x ){
            ok = 0;
        }
        i++;
    }
    if ( ok == 0 ) return 1;
    else return 0;
}
int main(){
    vector < vector < int > > v;
    ifstream fin ( "hashuri.in" );
    ofstream fout( "hashuri.out" );
    int operatie, numar, n;
    int nr_prim = 666013;
    fin>>n;
    for ( int i = 0; i < 666013; i++ ){
        vector < int > v1;
        v.push_back( v1 );
    }
    for( int i = 0; i < n; i ++ ){
        fin >> operatie;
        fin >> numar;
        if ( operatie == 1 ) operatie_1 ( numar , v [ hash0 ( numar , 666013 ) ] );
        if ( operatie == 2 ) operatie_2 ( numar , v [ hash0 ( numar , 666013 ) ] );
        if ( operatie == 3 ) fout << operatie_3 ( numar , v [ hash0 ( numar , 666013 ) ] ) << endl ;
    }
}