Cod sursa(job #1034875)

Utilizator DiClauDan Claudiu DiClau Data 18 noiembrie 2013 09:21:38
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <stdio.h>

using namespace std;

int v[1000005];

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