Cod sursa(job #1495904)

Utilizator andrici_cezarAndrici Cezar andrici_cezar Data 3 octombrie 2015 21:06:04
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <cstdio>

long v[1000001], n, contor, elMaj;

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

  scanf("%ld\n", &n);

  for (int i = 0; i < n; ++i) {
    scanf("%ld", &v[i]);
  }

  for (int i = 0; i < n; ++i) {
    if (contor == 0) {
      elMaj = v[i];
      ++contor;
    } else if (elMaj == v[i]) {
      ++contor;
    } else {
      --contor;
    }
  }

  contor = 0;
  for (int i = 0; i < n; ++i) {
    if (elMaj == v[i]) {
      ++contor;
    }
  }

  if (contor < n>>1+1) {
    printf("-1\n");
  } else {
    printf("%ld %ld\n", elMaj, contor);
  }

  return 0;
}