Cod sursa(job #1220424)

Utilizator ptquake10ptquake10 ptquake10 Data 17 august 2014 13:04:12
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <cstdio>
#include <vector>
#include <stack>
#include <queue>
#include <algorithm>
#include <cmath>
#include <fstream>
using namespace std;
#define inf 0xfffffff
#define MOD 1999999973

int n, v[1000010], a, b;

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]);
	}
	a = v[1];
	b = 1;
	for (int i = 2; i <= n; i++) {
		if (v[i] == a) b++; else {
			b--;
			if (b < 0) {
				a = v[i];
				b = 1;
			}
		}
	}
	b = 0;
	for (int i = 1; i <= n; i++) {
		if (v[i] == a) b++;
	}
	if (b > n/2) {
		printf("%d %d\n", a, b);
	} else {
		printf("-1\n");
	}
	
	return 0;
}