Cod sursa(job #878074)

Utilizator SPDionisSpinei Dionis SPDionis Data 13 februarie 2013 21:32:03
Problema Elementul majoritar Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>
#include <vector>
#include <algorithm>

using std::vector;

int main()
{
    std::ifstream in("elmaj.in");
    std::ofstream out("elmaj.out");

    int N;
    in >> N;
    vector<int> a;
    int x;
    for (int i = 0; i < N; ++i) {
        in >> x;
        a.push_back(x);
    }
    int k1 = 1, k2 = 0, maj;
    std::sort(a.begin(),a.end());
    for (int i = 1; i < a.size(); ++i)
        if ( a[i] == a[i - 1]) ++k1;
        else if ( k1 > k2 ) {
            k2 = k1;
            maj = a[i - 1];
        }

    if ( k2 > N / 2 ) {
        out << maj << " " << k2;
    } else out << -1;
    return 0;
}