Cod sursa(job #1746980)

Utilizator liviu23Liviu Andrei liviu23 Data 24 august 2016 12:15:09
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <fstream>

using namespace std;

int a[1000005],n;

int main()
{
    ifstream fin("elmaj.in");
    ofstream fout("elmaj.out");
    fin>>n;
    for(int i=1;i<=n;i++)
        fin>>a[i];
    int cand=0,k=0;
    for(int i=1;i<=n;i++) {
        if(k==0) {
            cand=a[i];
            k=1;
        }
        else if(a[i]==cand)
            k++;
        else
            k--;
    }
    k=0;
    for(int i=1;i<=n;i++)
        if(a[i]==cand)
            k++;
    if(k>=n/2+1)
        fout<<cand<<" "<<k<<'\n';
    else
        fout<<"-1";
    return 0;
}