Pagini recente » Cod sursa (job #281072) | Cod sursa (job #2717843) | Cod sursa (job #1570551) | Cod sursa (job #2227353) | Cod sursa (job #256324)
Cod sursa(job #256324)
#include<stdio.h>
#define INPUT "hashuri.in"
#define OUTPUT "hashuri.out"
#define MOD 666013
FILE *fin = fopen(INPUT, "r"), *fout = fopen(OUTPUT, "w");
struct List
{
long nr;
List *next;
};
List *Vec[ MOD + 1];
void insert(long Value)
{
List *p;
long nodPoz = Value % MOD;
p = new List;
p -> nr = Value;
p -> next = Vec[ nodPoz ];
Vec[ nodPoz ] = p;
}
void extract(long Value)
{
List *p;
long nodPoz = Value % MOD;
p = Vec[ nodPoz ];
if( p -> nr == Value)
Vec[ nodPoz ] = p -> next;
else
{
while(p != NULL && p -> next -> nr != Value)
p = p -> next;
p = p -> next -> next;
}
}
int verify(long Value)
{
long nodPoz = Value % MOD;
List *p;
p = Vec[ nodPoz ];
while(p != NULL)
if(p -> nr == Value)
return 1;
return 0;
}
int main()
{
long N, Code, Value;
fscanf(fin, "%ld", &N);
for(long i = 0; i < N; ++i)
{
fscanf(fin, "%ld %ld", &Code, &Value);
if(Code == 1)
{
if(!verify(Value)) insert(Value);
}
else
if(Code == 2)
{
if(verify(Value)) extract(Value);
}
else
if(Code == 3)
fprintf(fout, "%d\n", verify(Value));
}
fclose(fin);
fclose(fout);
return 0;
}