Cod sursa(job #2003871)

Utilizator whitewolf3131Ursu Laurentiu Cristian whitewolf3131 Data 24 iulie 2017 11:50:34
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.18 kb
#include <stdio.h>

using namespace std;
const int P=1000005;
int poz[P];
int val[P];
int urm[P];
int main()
{
	FILE *in, *out;
	in = fopen("hashuri.in", "r");
	out = fopen("hashuri.out", "w");
	int n, t, x;
	fscanf(in, "%d", &n);
	int c=0;
	for(int i=0; i<n; i++){
        fscanf(in, "%d%d", &t, &x);
        int raft=x%1000000;
        if(t==1){
            val[++c]=x;
            urm[c]=poz[raft+1];
            poz[raft+1]=c;
        }
        if(t==2){
            int p=poz[raft+1];
            int y;
            while(p!=0){
                y=val[p];
                if(x==y){
                    val[p]=-1;
                    break;
                }
                p=urm[p];
            }
        }
        if(t==3){
            int p=poz[raft+1];
            int y;
            bool check=false;
            while(p!=0){
                y=val[p];
                if(x==y){
                    check=true;
                    fprintf(out, "%d\n", 1);
                    break;
                }
                p=urm[p];
            }
            if(!check){
                fprintf(out, "%d\n", 0);
            }
        }
	}
	return 0;
}