Cod sursa(job #2284085)

Utilizator DariusDCDarius Capolna DariusDC Data 16 noiembrie 2018 19:12:32
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int NLIM = 1000001;

int n;
int v[NLIM];

int main()
{
    fin >> n;
    for (int i=1;i<=n;i++)
        fin >> v[i];
    int nr = 0;
    int candidat;
    for (int i=1;i<=n;i++)
    {
        if (nr == 0)
        {
            candidat =v[i];
            nr = 1;
        }
        else if (v[i] == candidat) nr++;
        else nr--;
    }
    if (!nr) fout << -1;
    else
    {
        int p = 0;
        for (int i=1;i<=n;i++)
            if (v[i] == candidat)
                p++;
        if (p > n/2) fout << candidat << " "<< p;
    }
    return 0;
}