Cod sursa(job #1999355)

Utilizator infomaxInfomax infomax Data 10 iulie 2017 23:21:41
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.01 kb
#include <bits/stdc++.h>

using namespace std;

FILE *F = fopen("hashuri.in", "r"), *G = fopen("hashuri.out", "w");

const int MOD = 666013;
int n, x, y;
struct node{int info; node *urm;} *L[666015];

void insrz(int x)
{
    node *q;
    q = new node;
    q->info = x;
    q->urm = L[x%MOD]->urm;
    L[x%MOD]->urm = q;
}

int gst(int x)
{
    node *q;
    q = L[x%MOD]->urm;
    while(q!=NULL)
        if(q->info == x) return 1;
        else q = q->urm;
    return 0;
}

void strg(int x)
{
    node *q, *r;
    q = L[x%MOD];
    while(q->urm!=NULL)
        if(q->urm->info == x) {r = q->urm; q->urm = r->urm; delete r; break;}
        else q = q->urm;
}

int main()
{
    fscanf(F, "%d ", &n);
    for(int i = 0; i < MOD; ++ i)
        L[i] = new node, L[i]->urm = NULL;
    for(int i = 0; i < n; ++ i)
    {
        fscanf(F, "%d%d ", &x, &y);
        if(x == 1) insrz(y);
        else if(x == 3) fprintf(G, "%d\n", gst(y));
        else if(gst(y)) strg(y);
    }
    return 0;
}