Cod sursa(job #855005)

Utilizator RamaStanciu Mara Rama Data 14 ianuarie 2013 15:36:03
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.25 kb
#include <iostream>
#include<stdio.h>
#include <vector>
#define rest 666013

using namespace std;

vector <long> hash[rest];

void insert (long long x)
{
    long i,k;
    k=x%rest;
    for(i=0;i<hash[k].size();i++)
       {
           if (hash[k][i]==x) return;
       }
    hash[k].push_back(x);
}

void erase(long long x)
{
    long i,k;
    k=x%rest;
    for(i=0;i<hash[k].size();i++)
    {
        if (hash[k][i]==x) {
                                hash[k][i]=hash[k].back();
                                hash[k].pop_back();
                                return;
                            }
    }
}
int count(long x)
{
    long i,k;
    k=x%rest;
    for(i=0;i<hash[k].size();i++)
       {
           if (hash[k][i]==x) return 1;

       }
    return 0;
}
int main()
{
    int op;
    long  x,n,i;
    FILE*f,*g;
    f=fopen("hashuri.in","r");
    g=fopen("hashuri.out","w");
    fscanf(f,"%ld",&n);
    for(i=1;i<=n;i++)
        {
            fscanf(f,"%d",&op);
            fscanf(f,"%ld",&x);
            switch(op)
        {
            case 1: {insert(x); break;}
            case 2: {erase(x); break;}
            case 3: {fprintf(g,"%d\n",count(x)); break;}
        }
        }
    return 0;
}