Cod sursa(job #1537465)

Utilizator DanielRusuDaniel Rusu DanielRusu Data 27 noiembrie 2015 13:32:01
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.5 kb
#include <cstdio>
#include <vector>

using namespace std;

#define MOD 666013

FILE *fin = fopen("hashuri.in","r");
FILE *fout = fopen("hashuri.out","w");

int N, tip, nr;
vector <vector <int> > MyHash;

int main() {
    fscanf(fin, "%d\n", &N);

    MyHash.resize(MOD + 2);

    while(N) {
        --N;

        fscanf(fin, "%d %d\n", &tip, &nr);

        if(tip == 1) {
            int cat = nr / MOD;
            int rest = nr % MOD;
            int was = 0;

            for(auto x: MyHash[rest]) {
                if(x == cat) {
                    was = 1;
                    break;
                }
            }

            if(!was) {
                MyHash[rest].push_back(cat);
            }
        }
        else
        if(tip == 2) {
            int cat = nr / MOD;
            int rest = nr % MOD;
            int th = 0;

            for(auto x: MyHash[rest]) {
                if(x == cat) {
                    MyHash[rest].erase(MyHash[rest].begin() + th);
                    break;
                }
                ++th;
            }
        }
        else
        if(tip == 3) {
            int cat = nr / MOD;
            int rest = nr % MOD;
            int was = 0;

            for(auto x: MyHash[rest]) {
                if(x == cat) {
                    was = 1;
                    break;
                }
            }

            fprintf(fout, "%d\n", was);
        }
    }

    fclose(fin);
    fclose(fout);

    return 0;
}