Cod sursa(job #1922845)

Utilizator SirbuSirbu Ioan Sirbu Data 10 martie 2017 19:14:19
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
using namespace std;
ifstream fin ("elmaj.in");
ofstream fout ("elmaj.out");


int v[1000005];

int main (){

  int n;
  fin >> n;
  for (int i = 1; i <= n; ++i)
    fin >> v[i];

  int nr = v[1];
  int sansa = 1;
  for (int i = 2; i <= n; ++i){
    if (v[i] != nr)
      sansa --;
    else
      sansa ++;

    if (sansa == 0)
      nr = -1;
    else if (sansa < 0){
      sansa = 1;
      nr = v[i];
    }
  }
  if (nr == -1) fout << nr;
  else {
    int cnt = 0;
    for (int i = 1; i <= n; ++i)
      if (v[i] == nr) cnt++;
    if (cnt >= n/2+1) fout << nr << " " << cnt;
    else fout << -1;
  }
}