Cod sursa(job #1735893)

Utilizator patrixKovacs Patrik patrix Data 31 iulie 2016 15:51:28
Problema Hashuri Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 1.42 kb
#include <iostream>
#include <fstream>
#include <unordered_map>
#include <vector>
#include <list>

#define cin in
#define cout out

#define SIZE 1000

using namespace std;

struct adat
{
    bool b;
    unsigned id;
};
vector < vector <adat> > x;

ifstream in ("hashuri.in");
ofstream out ("hashuri.out");

vector <adat>::iterator find (vector < vector<adat> >& x,unsigned t, bool create, bool& success)
{
    unsigned id = t % SIZE;
    success = 0;

    for (vector <adat>::iterator i = x[id].begin(); i < x[id].end(); i++)
        if (i -> id == t)
        {
            success = 1;
            return i;
        }

    if (!create)
        return x[id].begin();


    adat temp1;
    temp1.b = 0;
    temp1.id = t;
    x[id].push_back (temp1);

    return x[id].end() - 1;
}
int main()
{
    int n;
    cin >> n;

    x.resize (SIZE);

    int q, w;
    bool ok;
    vector <adat>::iterator t;
    for (int i=1;i<=n;i++)
    {
        cin >> q >> w;

        if (q == 1)
        {
            t = find (x, w, 1, ok);
            t -> b = 1;
        }
        else
        if (q == 2)
        {
            t = find (x, w, 0, ok);

            if (ok)
            t -> b = 0;
        }
        else
        {
            t = find (x, w, 0, ok);

            if (ok)
            cout << t->b << "\n";
            else
            cout << 0 << "\n";
        }
    }
}