Cod sursa(job #648734)

Utilizator mihaibogdan10Mihai Bogdan mihaibogdan10 Data 14 decembrie 2011 03:47:22
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include<cstdio>
#include<vector>
using namespace std;

vector <int> v;

int main(){
	freopen("elmaj.in", "r", stdin), freopen("elmaj.out", "w", stdout);
	int n, i, x, candidat, sustinatori;
	scanf("%d", &n);
	for (i = 0; i < n; i++){
		scanf("%d", &x);
		v.push_back(x);
	}
	
	sustinatori = 0;
	for (i = 0; i < n; i++)
		if (sustinatori == 0){
			candidat = v[i];
			sustinatori++;
		}
		else
			if (v[i] == candidat) sustinatori ++;
			else sustinatori--;
		
	//verific daca candidatul gasit este majoritar, sau doar are cele mai multe voturi
	sustinatori = 0;
	for (i = 0; i < n ; i++)
		if (v[i] == candidat) sustinatori++;
	
	if (sustinatori > n/2) printf("%d %d\n", candidat, sustinatori);
		else printf("-1");  
	return 0;
}