Cod sursa(job #1303273)

Utilizator adi_ispas95FMI - Adrian Ispas adi_ispas95 Data 27 decembrie 2014 20:10:47
Problema Elementul majoritar Scor 0
Compilator c Status done
Runda Teme Pregatire ACM Unibuc 2013 Marime 0.91 kb
#include <stdio.h>
#include <stdlib.h>

void element_majoritar (int n, int  a[]) {
    int cand = -1, k = 0, i;

    FILE *g = fopen ("elmaj.out","w");

    for (i = 0; i < n; i++)
        {
        if (k == 0)
            {
            cand = a[i];
            k = 1;
            }
        else
            if (a[i] == cand)
            {
                k++;
            }
            else
                k--;
        }

    int nr = 0;

    for (i = 0; i < n; i++) {
        if (a[i] == cand)
            nr++;
    }
    if (nr > n / 2)
        fprintf(g,"%d %d",cand, nr);
    else
        fprintf(g,-1);
}

int main()
{
    int *x, n, i;

    FILE *f = fopen ("elmaj.in","r");

    fscanf(f,"%d",&n);

    x = (int*)calloc(n,sizeof(int));

    for (i = 0; i < n; i++)
        fscanf("%d",&x[i]);

    fclose(f);

    element_majoritar (n, x);

    free(x);

   return 0;
}