Cod sursa(job #1303281)

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

int main()
{
    int *x, n, i, cand = -1, k = 0;

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

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

    x = (int*)malloc(n*sizeof(int));

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

    fclose(f);

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

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

    int nr = 0;

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

    free(x);

   return 0;
}