Cod sursa(job #1149967)

Utilizator horatiu13Horatiu horatiu13 Data 22 martie 2014 14:28:56
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <cstdio>
#define Nmax 1000002

FILE *fi = fopen("elmaj.in", "r");
FILE *fo = fopen("elmaj.out", "w");

int v[Nmax];
int n;
int k = 0;
int em = -1;

int main()
{
	int x;
	
	fscanf(fi, "%d", &n);
	
	for (int i = 1; i<=n; ++i)
	{
		fscanf(fi, "%d", &x);
		v[i] = x;
		if (k == 0)
		{
			em = x;
			k = 1;
		}
		else if (x == em) k++;
		else k--;
	}
	int ct = 0;
	for (int i = 1; i<=n; i++)
		if (v[i] == em)
			ct++;
	
	if (ct > n/2) fprintf(fo, "%d %d", em, ct);
	else fprintf(fo, "-1");
	
	return 0;
}