Cod sursa(job #2101052)

Utilizator dragos.galeteanu2001Dragos Iulian dragos.galeteanu2001 Data 6 ianuarie 2018 19:11:27
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <fstream>
#define limit 1000005

using namespace std;

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

long int n, v[limit], best = -1, k = 0;

void majority()
{
	long int i;
	for (i = 0; i < n; i++) {
		if (!k) best = v[i], k = 1;
		else if (v[i] == best) k++;
		else k--;
	}
	if (best < 0) g << best;
	long int nr = 0;
	for (i = 0; i < n; i++)
		if (v[i] == best) nr++;
	if (nr > n / 2) g << best << ' ' << nr;
	else g<<-1;
}

int main()
{
	long int i;
	f >> n;
	for (i = 0; i < n; i++) f >> v[i];
	majority();
    return 0;
}