Cod sursa(job #1203449)

Utilizator mucalmicmarcel almic mucalmic Data 30 iunie 2014 21:00:17
Problema Elementul majoritar Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <stdio.h>
#include <iostream>
#include <map>
#include <vector>
#include <algorithm>
#include <string.h>
#include <set>

#define N 1000001

#define max(a,b) ((a) >= (b) ? (a) : (b))

using namespace std;

int compare (const void * a, const void * b)
{	
  return ( *(int*)a - *(int*)b );
}


int v[N];

map <int, int> mp;
map <int, int>::iterator it;

int main () {


	FILE *f, *g;
	f = freopen("elmaj.in", "r", stdin);
	g = freopen("elmaj.out", "w", stdout);

	
	int i, j, k, n;
	char c;
	

	scanf("%d", &n);
	
	for (i = 0; i<n; i++) {
		scanf("%d", &v[i]);
		it = mp.find(v[i]);
		
		if (it != mp.end()) {
		
			it->second++;
		}
		else {
			mp.insert(make_pair(v[i], 1));
		}
	}
	
	for (it=mp.begin(); it!=mp.end(); ++it) {
		if (it -> second > n/2)
			break;
	}
	
	if (it -> second > n/2)	
		printf("%d %d\n", it->first, it->second);
	else
		printf("-1\n");
		
	
	return 0;
	
}