Cod sursa(job #1304619)

Utilizator pepsiM4A1Ozturk Arif pepsiM4A1 Data 29 decembrie 2014 00:22:48
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <stdio.h>
int n;
int a[1000001];
int main()
{
    FILE *fin,*fout;
    fin=fopen("elmaj.in","r");
    fout=fopen("elmaj.out","w");
    int carry,counter=1;
    fscanf(fin,"%d",&n);
    for(int i=1;i<=n;i++) fscanf(fin,"%d",&a[i]);
    carry=a[1];
    for(int i=2;i<=n;i++)
    {
        if(a[i]==carry) counter++;
        else
        {
            counter--;
            if(counter==0)
            {
                counter=1;
                carry=a[i];
            }
        }
    }
    counter=0;
    printf("%d ",carry);
    for(int i=1;i<=n;i++)
    {
        if(a[i]==carry) counter++;
    }
    if(counter>n/2)
    {
        fprintf(fout,"%d %d\n",carry,counter);
    }
    else fprintf(fout,"-1");
}