Cod sursa(job #1113265)

Utilizator mucenic_b101Bogdan Mucenic mucenic_b101 Data 20 februarie 2014 15:13:48
Problema Hashuri Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.23 kb
#include <cstdio>
#include <vector>
#define MOD 3496217
using namespace std;

vector <int> H[MOD+1];

inline int find( int x ) {
    int p = x % MOD;

    for( int i = 0 ; i < H[p].size() ; ++i )
        if( H[p][i] == x )
            return i;
    return -1;
}

int main () {
    FILE *f, *g;
    f = fopen( "hashuri.in", "r" );
    g = fopen( "hashuri.out", "w" );

    int n, op, x, p, aux, poz;

    fscanf( f, "%d", &n );

    for( int i = 0 ; i < n ; ++i ) {
        fscanf( f, "%d%d", &op, &x );
        switch(op) {
            case 1:
                H[x%MOD].push_back(x);
                break;
            case 2:
                p = find( x );
                poz = x % MOD;
                if( p != -1 ) {
                    aux = H[poz][p];
                    H[poz][p] = H[poz][H[poz].size()];
                    H[poz][H[poz].size()] = aux;
                    H[poz].pop_back();
                }
                break;
            case 3:
                p = find(x);
                if( p != -1 )
                    fprintf(g, "1\n" );
                else
                    fprintf( g, "0\n" );
        }
    }

    fclose( f );
    fclose( g );
    return 0;
}