Cod sursa(job #1184484)

Utilizator gbibBacotiu Gabi gbib Data 12 mai 2014 20:39:25
Problema Elementul majoritar Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 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++)
{
    in>>a[i];
    if(k==0)
    {
        k=0;
        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;
    elmaj(a,n);
    return 0;
}