Pagini recente » Cod sursa (job #472841) | Cod sursa (job #2897248) | Cod sursa (job #438590) | Cod sursa (job #1892475) | Cod sursa (job #644399)
Cod sursa(job #644399)
#include <stdio.h>
#define H 666013
struct nod {
int inf;
nod *adr;
};
nod *P[H], *p, *q, *r;
int N, i, x, y, j;
int main() {
FILE *f = fopen("hashuri.in","r");
FILE *g = fopen("hashuri.out","w");
fscanf(f,"%d",&N);
for (i=1;i<=N;i++) {
fscanf(f,"%d %d",&x, &y);
if (x == 1) {
q = P[y%H];
while (q!=NULL && q->inf != y) {
q = q->adr;
}
if (q == NULL) {
q = new nod;
q -> inf = y;
q -> adr = P[y%H];
P[y%H] = q;
}
} else if (x == 2) {
if (P[y%H] == NULL)
continue;
if (P[y%H]->inf == y) {
q = P[y%H];
P[y%H] = P[y%H]->adr;
delete q;
} else {
q = P[y%H];
while (q->adr != NULL && q->adr->inf != y){
q = q->adr;
}
if (q->adr != NULL) {
r = q->adr;
q->adr = q->adr->adr;
delete r;
}
}
} else if (x == 3) {
q = P[y%H];
while (q!=NULL && q->inf != y) {
q = q->adr;
}
if (q == NULL)
fprintf(g,"%d\n",0);
else
fprintf(g,"%d\n",1);
}
/*
for (j=0;j<100;j++) {
q = P[j];
if (q!=NULL) {
while (q!=NULL) {
printf("%d ",q->inf);
q = q->adr;
}
printf("\n");
}
}
*/
}
fclose(f);
fclose(g);
return 0;
}