Cod sursa(job #1757387)

Utilizator petru.ciocirlanPetru Ciocirlan petru.ciocirlan Data 14 septembrie 2016 22:15:25
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include<fstream>
using namespace std;
ifstream f("elmaj.in");
ofstream g("elmaj.out");

int main() {

  int n, a[1000001], cand=-1, k=0;

  f>>n;

  for (int i = 0; i < n; i++) {
    f>>a[i];
    if (k == 0) {
      cand = a[i];
      k = 1;
    } else if (a[i] == cand) k++;
    else k--;
  }

  if (cand < 0) {
    g<<"-1";
    return 0;
  }

  int nr = 0;
  for (int i = 0; i < n; i++) {
    if (a[i] == cand) nr++;
  }

  if (nr > n / 2) g<<cand<<" "<<nr;
  else g<<"-1";

  g.close();
  return 0;
}