Cod sursa(job #2795900)

Utilizator andrei_marciucMarciuc Andrei andrei_marciuc Data 7 noiembrie 2021 10:44:56
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 m, k;

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 ] );
        if( k == 0 ) {
            m = v[ i ];
            k = 1;
        } else if( v[ i ] != m )
            --k;
        else ++k;
    }
    fclose( fin );

    k = 0;
    for( int i = 0; i < n; i++ )
        k += ( v[ i ] == m );

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