Cod sursa(job #2054554)

Utilizator gruhtenZinnenberg Gruhten gruhten Data 2 noiembrie 2017 09:08:32
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>
#define dim 1000001
using namespace std;

int a[dim];
int main()
{
    ifstream f("elmaj.in");
    ofstream g("elmaj.out");
    int i,nr,ales,cnt,x,n;

    f>>n;
    f>>a[0];
    ales=a[0];
    cnt=1;
    for(i=1;i<n;++i)
    {
        f>>x;
        a[i]=x;
        if(x!=ales)
        {
            if(cnt==0)
            {
                ales=x;
                cnt=1;
            }
            else
             --cnt;
        }
        else
        {
            ++cnt;
        }
    }


if(cnt>n/2)
    g<<ales<<" "<<cnt<<'\n';
else if(cnt>0)
{
    cnt=0;
    for(i=0;i<n;++i)
        if(a[i]==ales)
            ++cnt;
    if(cnt>n/2)
        g<<ales<<" "<<cnt<<'\n';
    else
        g<<-1;

}
else if(cnt==0)
{
    g<<-1;
}

    return 0;
}