Cod sursa(job #1342390)

Utilizator ooptNemes Alin oopt Data 13 februarie 2015 22:33:20
Problema Elementul majoritar Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
// elmaj
#include <iostream>
#include <fstream>

#define ll long long

using namespace std;

int n;
int _elmaj;
ofstream g("elmaj.out");

void read() {
	ifstream f("elmaj.in");

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

	_elmaj = x;

	f.close();
}

void solve() {

	ifstream f("elmaj.in");

	int cnt = 0;

	f>>n;
	for (int i=1;i<=n;i++) {
		ll p; f>>p;
		if (p == _elmaj)
			cnt++;
	}

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

	f.close();
}

int main() {

	read();
	solve();

	g.close();
	return 0;
}