Cod sursa(job #1417417)

Utilizator Radu_FilipescuFilipescu Radu Radu_Filipescu Data 10 aprilie 2015 12:11:24
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include <fstream>

using namespace std;

ifstream fin("elmaj.in");
ofstream fout("elmaj.out");

unsigned int a[1000001];

int main()
{
    int n,i,maj,nr;

    fin>>n;
    for(i=1; i<=n; i++) fin>>a[i];
    fin.close();


    maj=a[1]; nr=1;
    for(i=2; i<=n; i++)
      if(a[i]==maj) nr++;
      else if(nr==0) {maj=a[i]; nr=1;}
           else nr--;

    nr=0;
    for(i=1; i<=n; i++) if(a[i]==maj) nr++;
    if(nr>n/2) fout<<maj<<' '<<nr;
    else fout<<'-1';
    fout.close();

    return 0;
}