Cod sursa(job #3326645)

Utilizator adamm24Adam Robert adamm24 Data 29 noiembrie 2025 18:31:04
Problema Elementul majoritar Scor 90
Compilator c-64 Status done
Runda Arhiva educationala Marime 1.03 kb
#include <stdio.h>
#include <stdlib.h>

#define MAXV 1000000

int freq[MAXV + 1];
int v[1000005];

int main() {
    FILE *fin, *fout;
    int n, i, j, limit, candidat, aparitii, gasit, x, cnt;

    fin = fopen("elmaj.in", "r");
    fout = fopen("elmaj.out", "w");
    fscanf(fin, "%d", &n);
    for (i = 0; i < n; i++)
        fscanf(fin, "%d", &v[i]);
    limit = n / 2;
    for (i = 0; i < limit; i++)
        freq[v[i]]++;
    candidat = -1;
    aparitii = gasit = 0;
    for (i = 0; i < limit && !gasit; i++) {
        x = v[i];
        if (freq[x] > 0) {
            cnt = 0;
            for (j = 0; j < n; j++)
                if (v[j] == x)
                    cnt++;
            if (cnt > n / 2) {
                candidat = x;
                aparitii = cnt;
                gasit = 1;
            }
            freq[x] = 0;
        }
    }
    if (!gasit)
        fprintf(fout, "-1\n");
    else
        fprintf(fout, "%d %d\n", candidat, aparitii);
    fclose(fin);
    fclose(fout);

    return 0;
}