This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <stdio.h>
#include <stdlib.h>
#define MAX 2000000
#define DEBUG 0
char hashtable[MAX + 1]; // LOL, initial value is 0! initial size is sizeof(void *) * 1415!
int main() {
int N, b;
scanf("%d", &N);
int i;
int n = 0;
char is_lower_than_N = 1;
for(i = 0; i < N; i++) {
if(is_lower_than_N) { scanf("%d", &b); if(i == N - 1) { scanf("%d", &N); is_lower_than_N = 0; } }
else b = n;
char *h = &hashtable[b + MAX / 2];
if(!*h) { *h = 1; n++; }
#if DEBUG
if(!*h) { n++; hash *c=(hash *)malloc(sizeof(hash)); c->val = b; c->next = 0; *h = c; } // gee, need to initialize.
else {
hash *cur_h = *h;
hash *prev_h;
char found = 0;
while(cur_h) {
if(cur_h->val == b) {
found = 1;
break;
}
prev_h = cur_h;
cur_h = cur_h->next;
}
if(!found) {
cur_h = (hash *)malloc(sizeof(hash));
cur_h->val = b;
cur_h->next = 0;
prev_h->next = cur_h;
n++;
}
}
#endif
}
printf("%d", b);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |