Cod sursa(job #1047834)

Utilizator oanacroitoruOana-Maria Croitoru oanacroitoru Data 4 decembrie 2013 22:10:07
Problema Elementul majoritar Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
#include <iostream>


using namespace std;

ifstream f("elmaj.in");
ofstream g("elmaj.out");

int x[1000001];
int poz(int p,int u)
{   int piv,aux,k;
    piv=x[p];
        while(p<u)
            {if(x[p]>x[u])
                {aux=x[p]; x[p]=x[u]; x[u]=aux;}
            if(x[p]==piv)
            u--;
            else
            p++;}
    k=p;
    return k;}

void quick (int p,int u)
{int k;
if(p<u)
{k=poz(p,u);
quick(p,k-1);
quick(k+1,u);
}
}

int main ()
{int i,k,maxc,maxim,n;
f>>n;
for(i=1;i<=n;i++)
f>>x[i];
quick(1,n);
maxim=1;

for (i=1;i<n;i++)
  {maxc=1;
    while(x[i]==x[i+1])
    {
        maxc++;

        i++;}
    if(maxc>maxim)
        {maxim=maxc;
        k=i;}
    }
if(maxim>n/2)
g<<x[k]<<" "<<maxim;
else
    g<<-1;
f.close();
g.close();
return 0;}