Cod sursa(job #1788372)

Utilizator SenibelanMales Sebastian Senibelan Data 25 octombrie 2016 22:24:54
Problema Elementul majoritar Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <fstream>

using namespace std;

ifstream in("elmaj.in");
ofstream out("elmaj.out");

int v[1000006], n;

int main(){
  int k = 0, maj = -1;
  in >> n;
  for(int i = 0; i < n; ++i){
    in >> v[i];
    if(k == 0){
      maj = v[i];
      k = 1;
    }
    else if(v[i] == maj)
      k++;
    else
      k--;
  }
  if(maj < 0)
    out << maj << "\n";
  else{
    k = 0;
    for(int i = 0; i < n; ++i){
      if(v[i] == maj)
	k++;
    }
    if(k > n / 2 + 1)
      out << maj << " " << k << "\n";
    else
      out << -1 << "\n";
    return 0;
  }
}