Cod sursa(job #2795897)

Utilizator andrei_marciucMarciuc Andrei andrei_marciuc Data 7 noiembrie 2021 10:41:33
Problema Elementul majoritar Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#pragma GCC optimize("O3")
#include <algorithm>
#include <stdio.h>

int n;

int main()
{
    FILE *fin = fopen( "elmaj.in", "r" );
    fscanf( fin, "%d", &n );
    
    int *v = new int[ n ];
    for( int i = 0; i < n; i++ )
        fscanf( fin, "%d", &v[ i ] );
    fclose( fin );

    std::sort( v, v + n );
    int i = n / 2;
    int j = n / 2 + 1;
    int val = v[ n / 2 ];
    
    int no = 0;
    while( i >= 0 && v[ i ] == val )
        --i, no++;

    while( j < n && v[ j ] == val )
        ++j, no++;

    FILE *fout = fopen( "elmaj.out", "w" );
    if( no > n / 2 )
        fprintf( fout, "%d %d\n", val, no );
    else fprintf( fout, "-1\n" );
    fclose( fout );
    return 0;
}