Cod sursa(job #2745821)

Utilizator linte_robertLinte Robert linte_robert Data 27 aprilie 2021 00:35:53
Problema Hashuri Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.48 kb

#include <iostream>
#include <fstream>
#include <vector>
#include <cstring>
using namespace std;

inline 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 );
}
inline 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++;
    }
}
inline 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;
    int i;
    ifstream fin ( "hashuri.in" );
    ofstream fout( "hashuri.out" );
    int n;
    int numar_prim = 666013;
    fin >> n;
    for ( i = 0; i < 666013; i++ ){
        vector < int > v1;
        v.push_back( v1 );
    }
    for( i = 0; i < n; i ++ ){
        int operatie, numar;
        fin >> operatie;
        fin >> numar;
        if ( operatie == 1 ) operatie_1 ( numar , v [ numar%numar_prim ] );
        if ( operatie == 2 ) operatie_2 ( numar , v [ numar%numar_prim ] );
        if ( operatie == 3 ) fout << operatie_3 ( numar , v [ numar%numar_prim ] ) << endl ;
    }
}