#include <stdio.h>
#include <stdlib.h>
int *read_data(int *size)
{
int n, i;
int *v;
FILE *f = fopen("elmaj.in", "r");
if (!f)
return NULL;
fscanf(f, "%d", &n);
*size = n;
v = malloc(n * sizeof(int));
for (i = 0; i < n; i++)
fscanf(f, "%d", &v[i]);
return v;
}
void print_vec(int *v, int size)
{
int i;
for (i = 0; i < size; i++)
printf("%d ", v[i]);
printf("\n");
}
int check_maj(int *v, int size, int n, int *app)
{
int i, count = 0;
for(i = 0; i < size; i++) {
if (v[i] == n)
count++;
}
*app = count;
printf("Checking elmaj for %d, size %d, count %d\n", n, size, count);
return count >= size/2 + 1;
}
void solve(int *v, int size)
{
int i, app;
FILE *f = fopen("elmaj.out", "w");
if (!f)
return;
for (i = 0; i < size-1; i+=2) {
printf("Checking indexes (%d, %d) -> (%d, %d) \n", i, i+1, v[i], v[i+1]);
if (v[i] == v[i+1]) {
if (check_maj(v, size, v[i], &app)) {
fprintf(f, "%d %d\n", v[i], app);
return ;
}
}
}
if (size % 2 == 1 && check_maj(v, size, v[size-1], &app)) {
fprintf(f, "%d %d\n", v[size-1], app);
return ;
}
fprintf(f, "-1\n");
}
int main(void)
{
int size;
int *v;
v = read_data(&size);
print_vec(v, size);
solve(v, size);
return 0;
}