Cod sursa(job #1564788)

Utilizator adimiclaus15Miclaus Adrian Stefan adimiclaus15 Data 9 ianuarie 2016 22:42:19
Problema Elementul majoritar Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <iostream>
#include <fstream>
using namespace std;
long long n,a[1000000],maxim,cnt,i;
int main()
{
    ifstream f("elmaj.in");
    ofstream g("elmaj.out");
    f>>n;
    for(i=1;i<=n;i++)
    {
        f>>a[i];
    }
    maxim=a[1];
    cnt=1;
    for(i=2;i<=n;i++)
    {
        if(a[i]==maxim)
        {
            cnt++;
        }
        else
        {
            cnt--;
        }
        if(cnt==0)
        {
            maxim=a[i];
            cnt=1;
        }
    }
    if(cnt==0)
    {
        g<<-1;
    }
    else
    {
        cnt=0;
        for(i=1;i<=n;i++)
        {
            if(a[i]==maxim)
            {
                cnt++;
            }
        }
        if(cnt>=(n/2)+1)
        {
            g<<maxim<<" "<<cnt;
        }
        else
        {
            g<<-1;
        }
    }
    return 0;
}