Pagini recente » Cod sursa (job #1942180) | Cod sursa (job #340188) | Cod sursa (job #1406094) | Cod sursa (job #1163883) | Cod sursa (job #1074258)
//
// main.c
// elmaj
//
// Created by Alexandru Bâgu on 1/7/14.
// Copyright (c) 2014 Alexandru Bâgu. All rights reserved.
//
#include <stdio.h>
#define HASH_KEY 131072
struct hashPoint{
int value;
int count;
struct hashPoint *next;
};
#define node struct hashPoint
int add(node* nodes, int x)
{
node *_node = &nodes[x % HASH_KEY];
while(_node != NULL)
{
if(_node->next == NULL)
{
_node->value = x;
_node->count = 1;
_node->next = malloc(sizeof(node));
_node->next->next = NULL;
return 1;
}
else
{
if(_node->value == x) {
_node->count++;
return _node->count;
}
else _node = _node->next;
}
}
return 1;
}
int rem(node* nodes, int x)
{
node *_node = &nodes[x % HASH_KEY];
node * next = _node->next;
while(_node != NULL)
{
if(_node->next == NULL)
return 0;
else if(_node->value == x)
{
_node->value = _node->next->value;
_node->next = _node->next->next;
return 1;
}
else _node = _node->next;
}
return 0;
}
int contains(node* nodes, int x)
{
node *_node = &nodes[x % HASH_KEY];
while(_node != NULL)
{
if(_node->next == NULL)
{
return 0;
}
else
{
if(_node->value == x) return 1;
else _node = _node->next;
}
}
return 0;
}
int main(int argc, const char * argv[])
{
FILE* fin = fopen("elmaj.in", "r"),
* fout = fopen("elmaj.out", "w");
node *hash = malloc(sizeof(node) * HASH_KEY);
int n, i, q;
int mq = -1, mc = 0;
fscanf(fin, "%d", &n);
for(i = 0; i < n; i++)
{
fscanf(fin, "%d", &q);
int count = add(hash, q);
if(count > mc)
{
mc = count;
mq = q;
}
}
fprintf(fout, "%d %d", mq, mc);
return 0;
}