Cod sursa(job #1184485)

Utilizator gbibBacotiu Gabi gbib Data 12 mai 2014 20:43:06
Problema Elementul majoritar Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>

using namespace std;
ifstream in("elmaj.in");
ofstream out("elmaj.out");
int a[1000000];
int elmaj(int a[], int n)
{
int i,cand,cont,k;
cand=-1;
k=0;
for(i=1;i<=n;i++)
{
    if(k==0)
    {
        k=1;
        cand=a[i];
    }
    else
        if(a[i]==cand) k++;
        else k--;

    if(cand<0)
       {
           out<<-1<<'\n';
        return cand;}

}
cont=0;
for(i=1;i<=n&&cand;i++)
{
    if(cand==a[i])
        cont++;
}
if(cont>=n/2+1)
    {out<<cand<<" "<<cont<<'\n';
        return cand;}
else {out<<-1<<'\n';
        return -1;}
}

int main()
{int n;

    in>>n;
for(int i=1;i<=n;i++)
     in>>a[i];
    elmaj(a,n);
    return 0;
}