Cod sursa(job #1342392)

Utilizator ooptNemes Alin oopt Data 13 februarie 2015 22:38:59
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
// elmaj
#include <iostream>
#include <fstream>

#define ll long long

using namespace std;

int n;
int _elmaj;
int A[1000005];

ifstream f("elmaj.in");
ofstream g("elmaj.out");

void read() {

	ll x = -1, cnt = 0;
	f>>n;
	for (int i=1;i<=n;i++) {
		ll p; f>>p; A[i] = p;
		if (p == x)
			cnt++;
		if (p != x) {
			if (cnt > 0)
				cnt--;
			else {
				cnt = 1;
				x = p;
			}
		}
	}

	_elmaj = x;
}

void solve() {
	int cnt = 0;

	f>>n;
	for (int i=1;i<=n;i++)
		if (A[i] == _elmaj)
			cnt++;

	if (cnt >= n/2 + 1) {
		g<<_elmaj<<' '<<cnt<<'\n';
	} else
		g<<-1<<'\n';
}

int main() {

	read();
	solve();

	f.close(); g.close();
	return 0;
}