Cod sursa(job #2499446)

Utilizator bogdanvladmihaiBogdan Vlad-Mihai bogdanvladmihai Data 26 noiembrie 2019 09:19:16
Problema Elementul majoritar Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <bits/stdc++.h>

const int MAX_N = 1000005;

int n;

int arr[MAX_N];

int main() {
  int cnt, candidate;
  freopen("elmaj.in", "r", stdin);
  freopen("elmaj.out", "w", stdout);
  std::cin >> n;
  for (int i = 1; i <= n; ++i) {
    std::cin >> arr[i];
  }
  cnt = 1;
  candidate = arr[1];
  for (int i = 2; i <= n; ++i) {
    if (arr[i] == candidate) {
      ++cnt;
    } else {
      --cnt;
    }
    if (cnt == 0) {
      candidate = arr[i];
      cnt = 1;
    }
  }
  cnt = 0;
  for (int i = 1; i <= n; ++i) {
    if (arr[i] == candidate) {
      ++cnt;
    }
  }
  if (cnt >= n / 2 + 1) {
    std::cout << candidate << " " << cnt << "\n";
  } else {
    std::cout << - 1 << "\n";
  }
#ifdef LOCAL_DEFINE
  std::cerr << "Time elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n";
#endif
  return 0;
}