Cod sursa(job #1502928)

Utilizator DobosDobos Paul Dobos Data 15 octombrie 2015 11:15:55
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.25 kb
#include <bits/stdc++.h>
const int MOD = 666013;
const int BMOD = 30;
using namespace std;
ifstream fin  ("hashuri.in");
ofstream fout ("hashuri.out");
vector < int > H[MOD];
int c = BMOD - 1;
char buffer[BMOD];
inline void parsare(int &x)
{
    while(!isdigit(buffer[c])){
        c++;
        if(c == BMOD){
            c = 0;
            fin.read(buffer , BMOD);
        }
    }
      x = 0;
    while(isdigit(buffer[c])){
        x = x * 10 + (buffer[c] - '0');
        c++;
        if(c == BMOD){
            fin.read(buffer, BMOD);
            c = 0;
        }

    }
}
inline int cauta(int x)
{
    for(int i = 0; i < H[x%MOD].size(); i++)
        if( H[x%MOD][i] == x)
        return i;
    return -1;
}
int main()
{
    int n,p,x,poz;
    parsare(n);
    for(int i = 1; i <= n ; i++){
        parsare(p); parsare(x);
        poz = cauta(x);
        if(p == 1){
           if(poz == -1)
            H[x%MOD].push_back(x);
        }
        if(p == 2){
            if(poz != -1)
                H[x%MOD].erase(H[x%MOD].begin()+ poz);
        }
        if(p == 3){
            if(poz != -1)
                fout << 1 << "\n";
            else
                fout << 0 << "\n";
        }

        }

    return 0;
}