Cod sursa(job #1801884)

Utilizator ruxi.icleanuRuxandra Icleanu ruxi.icleanu Data 9 noiembrie 2016 18:09:02
Problema Elementul majoritar Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.68 kb
#include <stdio.h>
#include <stdlib.h>

#define MAXN 1000000

int v[MAXN];

int main()
{
    int n, k, maj, i;
    FILE *fi, *fo;
    fi = fopen("elmaj.in", "r");
    fo = fopen("elmaj.out", "w");
    fscanf(fi, "%d%d", &n, &v[0]);
    maj=v[0];
    k=1;
    for(i=1; i<n; i++) {
        fscanf(fi, "%d", &v[i]);
        if(maj==v[i])
            k++;
        else {
            k--;
            if(k<0) {
                maj=v[i];
                k=1;
            }
        }
    }
    k=0;
    for(i=0; i<n; i++)
        if(v[i]==maj)
            k++;
    if(k>=n/2+1)
        fprintf(fo, "%d %d", maj, k);
    else
        fprintf(fo, "-1");
    fclose(fi);
    fclose(fo);
    return 0;
}