Cod sursa(job #2238038)

Utilizator al3xionescuIonescu Alexandru al3xionescu Data 4 septembrie 2018 12:07:40
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>

#define NMAX 1000000

std::ifstream cin("elmaj.in");
std::ofstream cout("elmaj.out");

int n, maj = -1, count = 0;
int numbers[NMAX];

void finish() {
  if (count >= n / 2 + 1) {
    cout << maj << " " << count;
  } else {
    cout << -1;
  }
  exit(0);
}

int main() {
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> numbers[i];
    if (count == 0) {
      count = 1;
      maj = numbers[i];
    } else if (numbers[i] == maj) {
      ++count;
    } else {
      --count;
    }
  }
  if (count == 0) {
    finish();
  }
  count = 0;
  for (int i = 0; i < n; i++) {
    if (numbers[i] == maj) {
      ++count;
    }
  }
  finish();
  return 0;
}