Cod sursa(job #1490741)

Utilizator salam1Florin Salam salam1 Data 24 septembrie 2015 03:16:20
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <cstdio>
const int NMAX = 1000505;
int n, x, A[NMAX];
int majEl, cntMaj;

int main() {
  freopen("elmaj.in", "r", stdin);
  freopen("elmaj.out", "w", stdout);

  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%d", &A[i]);
    if (cntMaj == 0 || A[i] == majEl) {
      cntMaj++;
      majEl = A[i];
    } else {
      cntMaj--;
    }
  }

  cntMaj = 0;
  for (int i = 1; i <= n; i++) {
    if (A[i] == majEl)
      cntMaj++;
  }

  if (cntMaj >= n / 2 + 1)
    printf("%d %d\n", majEl, cntMaj);
  else
    printf("-1\n");

  return 0;
}