Cod sursa(job #2773972)

Utilizator StefanSanStanescu Stefan StefanSan Data 9 septembrie 2021 14:05:35
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>

using namespace std;

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

int v[1000009], n;

int main(){

        in >> n;
        for(int i = 1; i <= n; i++)
                in >> v[i];

        int candidat = v[1], nr = 1;
        for(int i = 2; i <= n; i++) {
                if(v[i] == candidat)
                        nr++;
                else{
                        if(nr == 1)
                                candidat = v[i];
                        else
                                nr--;
                }
        }

        nr = 0;

        for(int i = 1; i <= n; i++)
                if(v[i] == candidat) nr++;

        if(nr >= (n + 1) / 2)
                out << candidat << ' ' << nr;
        else
                out << -1;

        return 0;
}