Pagini recente » Cod sursa (job #1514309) | Cod sursa (job #1949825) | Cod sursa (job #717130) | Cod sursa (job #1519862) | Cod sursa (job #644401)
Cod sursa(job #644401)
#include <stdio.h>
#define H 1000
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);
}
}
fclose(f);
fclose(g);
return 0;
}