Cod sursa(job #3197984)

Utilizator andu9andu nita andu9 Data 27 ianuarie 2024 20:49:13
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <algorithm>
#include <fstream>
#include <utility>
#include <vector>

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

int main () {
    int n; fin >> n;
    std::vector<int> v(n);
    for (int i = 0; i < n; i += 1)
        fin >> v[i];

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

    contor = 0;
    for (int i = 0; i < n; i += 1)
        if (v[i] == candidat)
            contor += 1;
    
    if (contor >= n / 2 + 1)
    	fout << candidat << ' ' << contor;
    else
        fout << -1;
    return 0;
}