Cod sursa(job #1851355)

Utilizator mihaialex14Dima Mihai mihaialex14 Data 19 ianuarie 2017 17:30:48
Problema Elementul majoritar Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <fstream>
#include <iostream>
#define nmax 1000000
using namespace std;
ifstream fin("elmaj.in");
ofstream fout("elmaj.out");

int n,a[nmax];

int main()
{
    int i,maj,vot,ct=0;
    fin>>n;
    for(i=1; i<=n; i++) fin>>a[i];
    fin.close();

    maj=a[1]; vot=1;
    for(i=2; i<=n; i++)
        if(a[i]==maj) vot++;
        else if(vot>0) vot--;
             else {maj=a[i]; vot=1;}
    for(i=1; i<=n; i++)
        if(a[i]==maj) ct++;
    if(ct>=n/2+1) fout<<maj<<" "<<ct;
    else fout<<-1;
    fout<<"\n";
    fout.close();
    return 0;
}