Cod sursa(job #1108459)

Utilizator dspMihaiDespotovici Mihai dspMihai Data 15 februarie 2014 18:19:36
Problema Elementul majoritar Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>
using namespace std;
unsigned long long v[100001],n,best,nr;
int jos[100001];
unsigned long long i,j;
int main ()
{
	FILE *f,*g;
	f=fopen("elmaj.in", "r");g=fopen("elmaj.out", "w");
	fscanf(f, "%lu", &n);
	for (i=1; i<=n; i++) fscanf(f, "%d", &v[i]);
	fclose(f); 
	
	i=1; j=2;
	while (i<=n and j<=n)
	{
		if (v[i]!=v[j]) jos[i]=jos[j]=1;
		while (jos[i] and i<=n) i++;
		if (i<=n) while ((jos[j] or v[i]==v[j]) and j<=n) j++;
		//fprintf(g, "%d %d\n", i,j);
	}
	best=v[i];
	for (i=1; i<=n; i++) if (v[i]==best) nr++;
	if (nr>long(n/2)) fprintf(g, "%lu", best);
	else fprintf(g, "-1");
	//for (i=1; i<=n; i++) fprintf(g, "%d ", jos[i]);
	
	fclose(g);
	return 0;
}