Cod sursa(job #2667274)

Utilizator cristi_macoveiMacovei Cristian cristi_macovei Data 3 noiembrie 2020 11:33:20
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.54 kb
#include <iostream>
#include <fstream>

const int NMAX = 1e6;

int a[1 + NMAX];

int main() {
  std::ifstream in("elmaj.in");
  std::ofstream out("elmaj.out");

  int n;
  int val = -1, cnt = 1;

  in >> n;

  for (int i = 1; i <= n; ++i) {
    in >> a[i];

    if (a[i] != val) {
      --cnt;

      if (cnt == 0)
        val = a[i], cnt = 1;
    }
    else
      ++cnt;
  }

  cnt = 0;
  for (int i = 1; i <= n; ++i) {
    if (a[i] == val)
      ++cnt;
  }

  if (cnt >= n / 2 + 1)
    out << val << ' ' << cnt;
  else
    out << -1;

  return 0;
}