Cod sursa(job #672751)

Utilizator luckyme91wiz kid luckyme91 Data 3 februarie 2012 01:02:25
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <fstream>
#include <stdlib.h>

using namespace std;

int main () {

ifstream in ("elmaj.in");
ofstream out ("elmaj.out");
int n;
in >> n;
int *v = (int*) calloc (n, sizeof(int));
for (int i = 0; i < n; i++)
	in >> v[i];

int cand = -1, k = 0;

for (int i = 0; i < n; i++)
{
	if (k == 0)
	{
		cand = v[i];
		k = 1;
	}
	else
		if (cand == v[i])
			k++;
		else
			k--;
}
if (cand < 0)
{
	out << cand;
	return 0;
}
int count = 0;
for (int i = 0; i < n; i++)
	if (v[i] == cand)
		count ++;
if (count >= n/2 + 1)
	out << cand <<" "<< count;
else
	out << -1;
return 0;
}