Cod sursa(job #1209910)

Utilizator ConstantinPetroviciPetrovici Constantin ConstantinPetrovici Data 18 iulie 2014 20:46:55
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <fstream>

const char IN[]="elmaj.in";
const char OUT[]="elmaj.out";
const int MAX = 1000014;

using namespace std;

int v [ MAX ] ;

ifstream fin ( IN );
ofstream fout ( OUT );
int main( )
{
    int n;
    fin>>n;
    for ( int i = 1 ; i <= n ; ++ i )
        fin >> v [ i ];
    int win = v[ 1 ];
    int ap = 1;
    for ( int i = 2 ;i <= n ; ++i ){
        if ( v [ i ] == win ) ++ap;
            else
                --ap;
        if ( !ap ){
            win = v [ i ] ;
            ap = 1 ;
        }
    }
    ap =  0 ;
    for ( int i = 1 ; i <= n ; ++i )
        ap += (v[i]==win);
    if ( ap > (n>>1) ) fout << win << ' ' << ap ;
        else
            fout << "-1" ;
    return 0;
}