Cod sursa(job #696859)

Utilizator tanduraDomnita Dan tandura Data 28 februarie 2012 20:32:22
Problema Elementul majoritar Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<fstream>
using namespace std;

struct {long long e; long f;} x[1000000],aux;

int main()
{long n,i,j,l,ok;
long long nr;
ifstream g("elmaj.in");
g>>n;
g>>nr; l=0;
x[l].e=nr;
x[l].f=1;
aux=x[0];
for(i=1;i<n;i++)
   {g>>nr; ok=1;
    for(j=-1;((j<=l)&&(ok==1));++j)
		if(nr==x[j].e)
		  {x[j].f++;
		   ok++;
		   if(aux.f<x[j].f)
	         if(x[j].f>=n/2+1)	
		        aux=x[j];
		  }
	if(ok==1)
	  {l++;
	   x[l].e=nr;
	   x[l].f=1;}
	
   }
ofstream t("elmaj.out");
if(aux.f>=n/2+1)
	t<<aux.e<<" "<<aux.f;
else
	t<<-1;
g.close();
t.close();
return 0;
}