Cod sursa(job #1766433)

Utilizator valentinoMoldovan Rares valentino Data 27 septembrie 2016 22:15:26
Problema Hashuri Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 1.09 kb
#include <vector>
#include <fstream>
#include <iostream>
#define MOD 666013

using namespace std;

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

vector < int > mylist[MOD];
int n;

inline vector <int>:: iterator find_value(int y)
{
    int x = y % MOD;
    for(vector<int>::iterator it = mylist[x].begin(); it != mylist[x].end(); ++it)
    {
        if(*it == x) return it;
    }
    return mylist[x].end();
}

inline void insert_list(int y)
{
    int x = y % MOD;
    if(find_value(x) == mylist[x].end())
    {
        mylist[x].push_back(x);
    }
}

inline void delete_list(int y)
{
    int x = y % MOD;
    vector <int>::iterator it = find_value(x);
    if(it != mylist[x].end())
    {
        mylist[x].erase(it);
    }
}

inline void search_list(int y)
{
    int x = y % MOD;
    g << (find_value(x) != mylist[x].end()) << '\n';
}

int main()
{
    int op, y;
    f >> n;
    for(int i = 1; i <= n; ++i)
    {
        f >> op >> y;
        if(op == 1) insert_list(y);
        else if(op == 2) delete_list(y);
        else search_list(y);
    }
}