Cod sursa(job #793079)

Utilizator var_jackvar jack var_jack Data 1 octombrie 2012 21:41:55
Problema Elementul majoritar Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>
#include <map>

using namespace std;

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

int main(){
    int n;
    in >> n;

    int i=n, a[n];
    for(; i; i--)
        in >> a[n-i];

    map<int, int> b;
    map<int, int>::iterator bi;
    bool found;
    int pos;

    for (i = 0; i < n; i++)
        if (b.find(a[i]) == b.end())
            b[a[i]] = 1;
        else {
            b[a[i]]++;
            if (!found) {
                found = b[a[i]] > (n/2);
                pos = i;
            }

        }

    /*
    for (bi=b.begin() ; bi != b.end(); bi++ )
        if ((*bi).second > n/2) {
            out << (*bi).first << " " << (*bi).second;
            return 0;
        }
    */
    if (found) {
        out << a[pos] << " " << b[a[pos]];
        return 0;
    }

    out << -1;
    return 0;
}