Cod sursa(job #2587787)

Utilizator k2e0e0w3qDumitrescu Gheorghe k2e0e0w3q Data 23 martie 2020 15:58:22
Problema Elementul majoritar Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <stdio.h>
#include <stdlib.h>

int main (void) {
    FILE *fin=fopen ("elmaj.in", "r"),
         *fout=fopen ("elmaj.out", "w");
    int n, *v, i;
    fscanf (fin, "%d", &n);
    v=(int*)calloc(n, sizeof(int));

    fscanf (fin, "%d", &v[0]);
    int can=v[0], ap=1;
    for (i=1; i<n; i++) {
        fscanf (fin, "%d", &v[i]);
        if (v[i]==can)
            ap++;
        else {
            --ap;
            if (!ap) {
                can=v[i];
                ap++;
            }
        }
    }

    ap=0;
    for (i=0; i<n; i++)
        if (v[i]==can)
            ap++;

    if (ap>(n>>1))
        fprintf (fout, "%d %d\n", can, ap);
    else
        fprintf (fout, "-1\n");

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