Cod sursa(job #1059706)

Utilizator kitzTimofte Bogdan kitz Data 16 decembrie 2013 21:37:16
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
#include <algorithm>
#include <iostream>
#include <vector>
std::ifstream fin("elmaj.in");
std::ofstream fout("elmaj.out");
int n;
int a[1000005];
int sortMajority() {
    std::sort(a, a+n);
	int i = 0, j = 0;
    while (i < n) {
          j = i;
          while (j < n && a[j + 1] == a[i])
              j++;
		  int k = j - i + 1;
          if ( k > n/2) 
              return a[i];
          i = j + 1;
    }
    return -1;
}
int main(){
	fin >> n;
	for(int i = 0; i < n; i++)
		fin >> a[i];
	int p = sortMajority();
	int nr = 0;
	for(int i = 0; i < n; i++)
		if(a[i] == p) nr++;
	fout << p << " " << nr;
	return 0;
}