Cod sursa(job #1562839)

Utilizator xtreme77Patrick Sava xtreme77 Data 5 ianuarie 2016 15:18:11
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>

using namespace std;

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

int v [ 1000999 ] ;

int main()
{
    int n ;
    cin >> n ;
    for ( int i = 1 ; i <= n ; ++ i )
        cin >> v [ i ] ;
    int cand = v [ 1 ] ;
    int vot = 1 ;
    for ( int i = 2 ; i <= n ; ++ i )
    {
        if ( cand != v [ i ] ){
            if ( vot > 1 ) -- vot ;
            else {
                cand = v [ i ] ;
                vot = 0 ;
            }
        }
        else {
            ++ vot ;
        }
    }
    int numar = 0 ;
    for ( int i = 1 ; i <= n ; ++ i )
        if ( cand == v [ i ] ) ++ numar ;
    if ( numar >= n / 2 + 1 )
        cout << cand << ' ' << numar << '\n' ;
    else cout << -1 ;
    return 0;
}