Cod sursa(job #1354572)

Utilizator anaid96Nasue Diana anaid96 Data 21 februarie 2015 21:30:33
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.44 kb
#include<stdio.h>
#include<vector>
 
using namespace std;
 
FILE *in,*out;
 
//definitions
#define pb push_back
 
//constants
const int modulo = 666013;
  
//variabile
int oper, type,value;
vector<int> Hash[modulo];

//functions
void insert (int val);
void erase (int val);
int search (int val);

 
int main(void)
{
    in = fopen("hashuri.in","rt");
    out = fopen("hashuri.out","wt");
     
    fscanf(in, "%d", &oper);
    while(oper--)
    {
        fscanf(in, "%d%d", &type,&value);
        if( type == 1)
            insert(value);
        else
            if( type == 2)
                erase(value);
            else
                fprintf(out, "%d\n", search(value));
    }   
}   
 
void insert(int val)
{
    int pos = val%modulo;
    vector<int> :: iterator it,end=Hash[pos].end();
    for(it=Hash[pos].begin() ; it!=end ; ++it)
        if(*it == val)
            return;
    Hash[pos].pb(val);  
}   
 
void erase(int val)
{
    int pos = val%modulo;
    vector<int> :: iterator it,end=Hash[pos].end();
    for(it=Hash[pos].begin() ; it!=end ; ++it)
        if(*it == val)
        {   
            Hash[pos].erase(it);
            return;
        }   
         
}   
 
int search(int val)
{
    int pos = val%modulo;
    vector<int> :: iterator it,end=Hash[pos].end();
    for(it=Hash[pos].begin() ; it!=end ; ++it)
        if(*it == val)
            return 1;
    return 0;   
}