Cod sursa(job #1774184)

Utilizator RobertSSamoilescu Robert RobertS Data 8 octombrie 2016 17:33:05
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

int N; 
vector<int> v;

ifstream fin("elmaj.in");
ofstream fout("elmaj.out");

int solve(int n, int *a) {
	int cand = -1, k = 0;

	for (int i = 0; i < n; i++) {
		if (k == 0) {
			cand = a[i];
			k = 1;
		} else if (a[i] == cand) {
			k++;
		} else
			k--; 

	}

	if (cand < 0) return cand;

	int nr = 0;
	for (int i = 0; i < n; i++) {
		if (a[i] == cand)
			nr++;
	}

	if (nr > n / 2) fout << cand << " " << nr << '\n';
	else fout << "-1\n";
}


int main() {

	int N;
	fin >> N;

	int v[N];
	for (int i = 0; i < N; i++)
		fin >> v[i];
	

	solve(N, v);

	fin.close();
	fout.close();

	return 0;
}