Cod sursa(job #1845960)

Utilizator SirbuSirbu Ioan Sirbu Data 12 ianuarie 2017 00:03:05
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 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)
    {
      nr=v[i];
      sansa=1;
    }
  }
  if (nr==-1) {fout << nr << "\n"; return 0;}
  int cnt=0;
  for (int i=1;i<=n;i++)
    if (v[i]==nr) cnt++;
  if (cnt>=n/2+1) fout << nr << " " << cnt << "\n";
  else fout << -1 << "\n";


}