Cod sursa(job #1188011)

Utilizator gerd13David Gergely gerd13 Data 18 mai 2014 20:09:19
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.34 kb
///Template by Gergely David

#include <fstream>
//#include <iostream>
#include <cmath>
#include <algorithm>
#include <vector>
#include <deque>
#include <queue>
#include <map>
#include <set>
#include <string>
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <climits>

#define MIN (a, b) (((a)<(b))?(a):(b))
#define MAX (a, b) (((a)>(b))?(a):(b))
#define unsigned long long ull

using namespace std ;

const int NMAX = 1000005 ;
const int INF = 0x3f3f3f3f ;

//vector <int> V ;
queue < pair <int, int> > Q ;

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

int N ;
int V[NMAX] ;

int main()
{
    cin >> N ;
    for(int i = 1 ; i <= N ; ++ i)
        cin >> V[i] ;

    sort(V + 1, V + N + 1) ;

    int n = 1 ;
    int  sol2 = 0, MAXX = -INF ;
    int cnt = 0 ;

    for(int i = 1 ; i <= N ; ++ i)
    {
        // cout << V[i] << ' ' ;
        //cout << n << "       ";
        if(V[i] == n)
            ++ cnt ;
        else
        {
            if(MAXX < cnt)
            {
                MAXX = cnt ;
                sol2 = n ;

            }
            cnt = 0 ;
            n = V[i] ;
        }

    }

    if(MAXX + 1>= N / 2 + 1)
        cout << sol2 << ' ' << MAXX + 1<< '\n' ;
    else cout << -1 << '\n' ;

    cin.close() ;
    cout.close() ;
    return  0 ;
}