Cod sursa(job #1488052)

Utilizator serbanSlincu Serban serban Data 17 septembrie 2015 20:13:42
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.13 kb
#include <bits/stdc++.h>

using namespace std;

vector<int> H[666013];

vector<int>::iterator caut(int who) {
    vector<int>::iterator it;
    int r = who % 666013;
    for(it = H[r].begin(); it != H[r].end(); it ++) {
        if(*it == who)
            return it;
    }
    return H[r].end();
}

int main()
{
    FILE *f = fopen("hashuri.in", "r");
    FILE *g = fopen("hashuri.out", "w");
    int n, op, x;
    fscanf(f, "%d", &n);
    while(n) {
        fscanf(f, "%d %d", &op, &x);
        int r = x % 666013;
        vector<int>::iterator rez = caut(x);
        if(op == 1) {
            if(rez == H[r].end())
                H[r].push_back(x);
        }
        else if(op == 2) {
            if(rez != H[r].end()) {
                vector<int>::iterator it = rez;
                for(; it != H[r].end(); it ++) {
                    *it = *(it + 1);
                }
                H[r].erase(H[r].end() - 1);
            }
        }
        else {
            if(rez != H[r]. end())
                fprintf(g, "1\n");
            else fprintf(g, "0\n");
        }
        n --;
    }
    return 0;
}