Cod sursa(job #2375129)

Utilizator ApostolIlieDanielApostol Daniel ApostolIlieDaniel Data 7 martie 2019 22:30:06
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <bits/stdc++.h>

using namespace std;
const int MAXN = 1e6;
int a[MAXN + 1];
int main() {
  int n, i, nr, maj;
  freopen ("elmaj.in", "r", stdin);
  freopen ("elmaj.out", "w", stdout);
  ios::sync_with_stdio(false);
  cin.tie (nullptr);
  cin >> n;
  for (i = 1; i <= n; i++)
    cin >> a[i];
  maj = a[1];
  nr = 1;
  for (i = 2; i <= n; i++) {
    if (maj == a[i])
      nr++;
    else
      nr--;
    if (nr < 0) {
      maj = a[i];
      nr = 1;
    }
  }
  nr = 0;
  for (i = 1; i <= n; i++)
    if (maj == a[i])
      nr++;
  if (nr > n / 2)
    printf ("%d %d", maj, nr);
  else
    printf ("-1");
  return 0;
}