Cod sursa(job #846561)

Utilizator test_13testing test_13 Data 2 ianuarie 2013 14:09:11
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <stdio.h>
#include <algorithm>
#include <cmath>
#include <cctype>
#include <cstring>
#include <vector>
#include <deque>
#include <set>
using namespace std;
#define Max 1000001

int n,a[Max];

int main()
{
	int x,nr;
	freopen("elmaj.in","r",stdin);
	freopen("elmaj.out","w",stdout);
		scanf("%d",&n);
		for(int i=1;i<=n;i++)scanf("%d",&a[i]);
		x=a[1]; nr=1;
		for(int i=2;i<=n;i++)
		{
			if(a[i]==x)nr++; else nr--;
			if(nr<0)
			{
				x=a[i];
				nr=1;
			}
		}
		nr=0;
		for(int i=1;i<=n;i++)
			if(a[i]==x)nr++;
		if(nr>n/2)printf("%d %d\n",x,nr); else printf("-1");
	return 0;
}