Cod sursa(job #1765283)

Utilizator oldatlantianSerban Cercelescu oldatlantian Data 26 septembrie 2016 16:09:50
Problema Hashuri Scor 100
Compilator cpp Status done
Runda cerculdeinfo-lectia1-hashuri.rabinkarp Marime 1.1 kb
#include <cstdio>
#include <vector>
using namespace std;

const int MOD = 99991;

vector<int> v[MOD];
FILE *fi = fopen("hashuri.in","r");
FILE *fo = fopen("hashuri.out","w");

inline void insert(int arg) {
    int p = arg % MOD;
    for(int i=0; i<v[p].size(); ++i)
        if(v[p][i]==arg)
            return;
    v[p].push_back(arg);
}

inline void remove(int arg) {
    int p = arg % MOD;
    for(int i=0; i<v[p].size(); ++i) {
        if(v[p][i]==arg) {
            v[p][i] = v[p].back();
            v[p].pop_back();
            return;
        }
    }
}

inline void query(int arg) {
    int p = arg % MOD;
    for(int i=0; i<v[p].size(); ++i) {
        if(v[p][i]==arg) {
            fprintf(fo,"1\n");
            return;
        }
    }
    fprintf(fo,"0\n");
}

int main(void) {
    int q, tsk, arg;

    fscanf(fi,"%d",&q);
    while(q--) {
        fscanf(fi,"%d%d",&tsk,&arg);
        switch(tsk) {
        case 1:
            insert(arg);
            break;
        case 2:
            remove(arg);
            break;
        case 3:
            query(arg);
            break;
        }
    }
    return 0;
}