Cod sursa(job #1803083)

Utilizator iomanea2002isaIoana Manea iomanea2002 Data 10 noiembrie 2016 22:32:33
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <stdio.h>
int v[1000000];
int main()
{
    FILE *fin, *fout;
    fin=fopen("elmaj.in", "r");
    fout=fopen("elmaj.out", "w");
    int n, i, el, av, avn;
    fscanf(fin, "%d ", &n);
    for(i=1; i<=n; i++)
        fscanf(fin, "%d", &v[i]);
    el=v[1];
    av=1;
    for(i=2; i<=n; i++)
    {
        if(v[i]==el)
            av++;
        else
            av--;
        if(av<0)
        {
            el=v[i];
            av=1;
        }
    }
    avn=0;
    for(i=1; i<=n; i++)
        if(v[i]==el)
            avn++;
    if(avn>n/2)
        fprintf(fout, "%d %d", el, avn);
    else
        fprintf(fout, "-1");
    return 0;
}