Cod sursa(job #1209559)

Utilizator grayshadeLaurentiu Nicola grayshade Data 18 iulie 2014 00:02:48
Problema Elementul majoritar Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.98 kb
#include <cstdio>
#include <map>
using namespace std;

int n, x;
map<int, int> aparitii;

int main() {
    freopen("elmaj.in", "r", stdin);
    freopen("elmaj.out", "w", stdout);

    int max = 0, ap = 0;

    scanf("%d", &n);
    for (int i = 0; i < n; ++i) {
        scanf("%d", &x);
        int a = ++aparitii[x];
        //map<int, int>::iterator it = aparitii.find(x);
        //if (it != aparitii.end()) {
        //    it->second++;
        //}
        //else {
        //    aparitii.insert(pair<int, int>(x, 1));
        //    it = aparitii.find(x);
        //}
        if (ap < a) {
            ap = a;
            max = x;
        }
    }

    /*/
    for (map<int, int>::iterator it = aparitii.begin(); it != aparitii.end(); ++it) {
    if (ap < it->second) {
    ap = it->second;
    max = it->first;
    }
    }
    //*/

    if (ap > n / 2) {
        printf("%d %d\n", max, ap);
    }
    else {
        printf("-1 \n");
    }

    return 0;
}