Cod sursa(job #948396)

Utilizator matei_cChristescu Matei matei_c Data 10 mai 2013 10:33:05
Problema Elementul majoritar Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include<fstream>
#include<map>
using namespace std ;

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

map<int, int> my_map ;

int n ;

int main()
{
    fin >> n ;

    int x ;

    for(int i = 1; i <= n; ++i )
    {
        fin >> x ;

        map<int, int> :: iterator it = my_map.find(x) ;

        if( it != my_map.end() )
        {
            int nr = it -> second ;
            ++nr ;

            my_map.erase(it -> first) ;

            my_map.insert( make_pair (x, nr));

            if( nr >= n / 2 + 1 )
            {
                fout << x << " " << nr ;
                return 0 ;
            }
        }
        else
            my_map.insert( make_pair (x, 1));
    }

    fout << "-1" ;

    return 0 ;
}