Cod sursa(job #2781637)

Utilizator KarinaDKarina Dumitrescu KarinaD Data 10 octombrie 2021 00:56:49
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>

using namespace std;

const int N = 1000000;
int v[ N ];

int main( ) {
    
    ifstream fin ( "elmaj.in" );
    ofstream fout ( "elmaj.out" );
    
    int n, i, e, ap;
    
    fin >> n;
    
    for (i = 0; i < n; i++)
      fin >> v[i];

    e = v[ 0 ];
    ap = 1;
    
    for ( i = 1; i < n; i++ ) {
        
        if ( v[ i ] != e && ap >= 1 )
            ap--;
        
        else if ( ap == 0 ){
            e = v[ i ];
            ap = 1;
        }
        
        else
            ap++;
    }
    
    ap = 0;
    
    for ( i = 0; i < n; i++ ) {
        
        if ( e == v[ i ] )
            ap++;
    }

    if ( ap > n / 2 )
        fout << e << " " << ap;
    
    else
        fout << "-1";

    
    return 0;
}