Cod sursa(job #758390)

Utilizator ciprianfFarcasanu Alexandru Ciprian ciprianf Data 15 iunie 2012 15:51:52
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include <stdio.h>
#define N_MAX 1000010
int v[N_MAX];
int n;
int main() {
	freopen("elmaj.in", "r", stdin);
	freopen("elmaj.out", "w", stdout);
	scanf("%d", &n);
	for(int i = 1; i <= n; i++) {
		scanf("%d", &v[i]);
	}
	int x = -1, c = 0;
	for(int i = 1; i <= n; i++) {
		if(x != v[i]) c--;
		else c++;
		if(c <= 0) {
			x = v[i];
			c = 1;
		}
	}
	c = 0;
	for(int i = 1; i <= n; i++) {
		c += (v[i] == x);
	}
	if(c < n/2 +1) printf("-1\n");
	else printf("%d %d\n",x, c);
	return 0;
}