Cod sursa(job #1438104)

Utilizator BLz0rDospra Cristian BLz0r Data 19 mai 2015 00:23:25
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <cstdio>
using namespace std;

#define Nmax 1000002

FILE *f = fopen ( "elmaj.in", "r" );
FILE *g = fopen ( "elmaj.out", "w" );

int v[Nmax];

int main(){

    int N, candid = -1, nr = 0;

    fscanf ( f, "%d", &N );

    for ( int i = 1; i <= N; ++i ){
        fscanf ( f, "%d", &v[i] );
        if ( nr == 0 ){
            candid = v[i];
            nr = 1;
        }
        else{
            if ( v[i] == candid )
                nr++;
            else
                nr--;
        }
    }

    nr = 0;

    for ( int i = 1; i <= N; ++i )
        if ( v[i] == candid )
            nr++;

    if ( nr > N / 2 )
        fprintf ( g, "%d %d", candid, nr );
    else
        fprintf ( g, "-1" );

    return 0;
}