Cod sursa(job #935228)

Utilizator George515600Bejan George George515600 Data 2 aprilie 2013 12:36:12
Problema Hashuri Scor 30
Compilator c Status done
Runda Arhiva educationala Marime 0.94 kb
#include <stdio.h>
#include <stdlib.h>

#define MAXSIZE 1000001

int N, M[MAXSIZE], SIZE;

int find_value(int x)
{
    int i;
    for (i = 0; i < SIZE; i++)
        if (M[i] == x) return i;
    return -1;
}

void add_value(x)
{
    if (find_value(x) == -1)
        M[SIZE++] = x;

}

void remove_value(x)
{
    int i, p = find_value(x);
    if (p != -1)
    {
        for (i = p; i < SIZE-1; i++)
            M[i] = M[i+1];
        SIZE--;
    }
}

int main()
{
    int op, x;
    FILE *f = fopen("hashuri.in","r");
    FILE *g = fopen("hashuri.out","w");

    fscanf(f,"%d", &N);
    int i;

    for (i = 0; i < N; i++)
    {
        fscanf(f,"%d %d", &op, &x);
        if (op == 1)
            add_value(x);
        if (op == 2)
            remove_value(x);
        if (op == 3)
            if (find_value(x) != -1)
                fprintf(g, "1 \n");
            else
                fprintf(g,"0 \n");
    }

    fclose(f);
    fclose(g);

    return 0;
}