Cod sursa(job #2211071)

Utilizator zvonTutuldunsa Voronokda zvon Data 9 iunie 2018 12:35:53
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include<iostream>
#include<fstream>
using namespace std;

int a[1000005];
int N;

int main(void) {
	int cand = -1;
	int k = 0;
	int i;
	ifstream fi("elmaj.in");
	ofstream fo("elmaj.out");
	fi >> N;
	for (i = 0; i < N; i++) {
		fi >> a[i];
	}
	for (i = 0; i < N; i++) {
		if (k == 0) {
			cand = a[i];
			k = 1;
		} else if (cand == a[i]) {
			k++;
		} else {
			k--;
		}
	}
	int c = 0;
	for (i = 0; i < N; i++) {
		if (a[i] == cand)
			c++;
	}
	if (c > N/2)
		fo << cand << ' ' << c;
	else
		fo << -1;
	return 0;
}