Cod sursa(job #1519587)

Utilizator ZeBuGgErCasapu Andreas ZeBuGgEr Data 7 noiembrie 2015 15:59:42
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include<stdio.h>

FILE *fin,*fout;

int n,val,c;
int a[1000001];

int main()
{
    fin=fopen("elmaj.in","r");
    fout=fopen("elmaj.out","w");

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

    fscanf(fin,"%d",&a[1]);
    val=a[1];
    c=1;

    for(int i=2;i<=n;i++)
    {
        fscanf(fin,"%d",&a[i]);
        if(val==a[i])
        {
            c++;
        }
        else
        {
            c--;
            if(c==0)
            {
                c=1;
                val=a[i];
            }
        }
    }

    c=0;

    for(int i=1;i<=n;i++)
    {
        if(a[i]==val)
        {
            c++;
        }
    }
    if(c>=n/2+1)
    {
        fprintf(fout,"%d %d",val,c);
    }
    else
    {
        fprintf(fout,"-1");
    }
}