Cod sursa(job #2559320)

Utilizator JackstilAdascalitei Alexandru Jackstil Data 27 februarie 2020 11:14:36
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("elmaj.in");
ofstream out("elmaj.out");

int n, v[1000000], k, candidat = -1, ver;

void majoritar() {
    for (int i = 0; i < n; ++i) {
        if (k == 0) {
            candidat = v[i];
            k = 1;
        }else if (v[i] == candidat)
            ++k;
        else
            --k;
    }
    if (candidat < 0)
        out << candidat;
    for (int i = 0; i < n; ++i)
        if (v[i] == candidat)
           ++ver;
    if (ver > n/2)
        out << candidat << " " << ver;
    else
        out << -1;
}

int main() {
    in >> n;
    for (int i = 0; i < n; ++i)
        in >> v[i];
    majoritar();
    return 0;
}