Cod sursa(job #653220)

Utilizator titeltitel popescu titel Data 27 decembrie 2011 16:56:57
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
// Algoritm de ** puncte pe infoarena
#include<fstream>
#include <algorithm>
#define maxn 1000001
using namespace std;
ifstream f("elmaj.in");
ofstream g("elmaj.out");
int n,maj,nrpoz,v[maxn];
int sortMajority(int n, int a[], int &nr)
{	sort (a, a + n);
    int i = 0;
    while (i < n) 
	{     int j = i;
          while (j < n && a[j + 1] == a[i]) j++;
		  nr=j-i+1;
          if (nr > n/2) return (a[i]);
          i = j + 1;
    }
    return -1;
}

int main(void)
{	f>>n;
	for(int i=0;i<n;i++) f>>v[i];
	maj=sortMajority(n,v,nrpoz);
	if(maj==-1) g<<"-1\n";
		else g<<maj<<' '<<nrpoz<<'\n';
	g.close(); return 0;
}