Cod sursa(job #1786966)

Utilizator andrey2397Barbu Andrei Octavian andrey2397 Data 23 octombrie 2016 21:55:04
Problema Elementul majoritar Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include <iostream>
#include <fstream>
#include <map>

using namespace std;

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

map<int, int> m;


int main()
{
    int i, x, ap, n, maj, ok=0;
    fin>>n;
    maj=n/2+1;
    for(i=1;i<=n;i++){
        fin>>x;
        if(m.find(x)->first == 0){
            m.insert(pair<int, int>(x, 1));
        }else{
            ap = m.find(x)->second;
            m.erase(x);
            m.insert(pair<int, int>(x, ap+1));
        }
    }
/*
    for(i=0;i<m.size();i++){
        if(m[i]>=maj){
            fout<<i<<" "<<m[i];
            ok=1;
            break;
        }
    }
    if(ok==0) fout<<"-1";

    */

    map<int, int>::iterator pos;
    for(pos=m.begin();pos!=m.end();++pos){
        if(pos->second>=maj){
            ok=1;
            cout<<pos->first<<" "<<pos->second;
            break;
        }
    }
    if(ok==0) cout<<-1;
    return 0;
}