Cod sursa(job #2838277)

Utilizator andreipirjol5Andrei Pirjol andreipirjol5 Data 23 ianuarie 2022 12:27:14
Problema Elementul majoritar Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <cstdio>
#include <algorithm>

using namespace std ;
FILE *fin, *fout ;

#define NMAX 1000000
int v[NMAX + 5] ;

int main()
{
    fin = fopen("elmaj.in", "r") ;
    fout = fopen("elmaj.out", "w") ;

    int n ;
    fscanf(fin, "%d", &n) ;

    for(int i = 1 ; i <= n ; i++)
        fscanf(fin, "%d", &v[i]) ;

    sort(v + 1, v + n + 1) ;

    int maxim = -1, i = 1 , nr ;

    while(i < n)
    {
        int j = i + 1, cnt = 1 ;

        while(j < n and v[j] == v[i])
        {
            cnt++;

            j++;
        }

        if(cnt >= n / 2 + 1)
            if(cnt > maxim)
            {
                nr = v[i] ;
                maxim = cnt ;
            }

        i = j ;
    }

    if(maxim == -1)
    fprintf(fout, "%d", maxim) ;
    else fprintf(fout , "%d %d" , nr , maxim) ;

    fclose(fin) ;
    fclose(fout) ;
    return 0 ;
}