Cod sursa(job #1509119)

Utilizator Vlad_317Vlad Panait Vlad_317 Data 23 octombrie 2015 15:27:05
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <stdio.h>

using namespace std;

int v[1000001],nr,a;

int main()
{
    FILE *fin, *fout;

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

    int n;

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

    for(int i=1;i<=n;i++)
    {
        fscanf(fin,"%d",&v[i]);
    }

    nr=v[1];
    a=1;

    for(int i=2;i<=n;i++)
    {
        if(v[i]==nr)
            a++;
        else
        {
            a--;
            if( a == 0)
            {
                nr=v[i];
                a=1;
            }
        }
    }

    a=0;
    for(int i=1;i<=n;i++)
    {
        if(v[i]==nr)
            a++;
    }

    if(a>=n/2+1)
        fprintf(fout,"%d %d", nr, a);
    else
        fprintf(fout,"-1");

    return 0;
}