Cod sursa(job #916161)

Utilizator TeodoraTanaseTeodora Tanase TeodoraTanase Data 15 martie 2013 21:59:22
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <fstream>
#include <algorithm>

#define NMAX 1000001

using namespace std;

ifstream fin("elmaj.in");
ofstream fout("elmaj.out");

int n;
int val;
int nr;
int a[NMAX];

void read()
{
    fin >> n;

    for(int i = 0; i < n; fin >> a[i ++]);
}

void solve()
{
    int v = (n >> 1) + 1;
    int lg = 1;

    for(int i = 1; i < n; ++ i)
        if(a[i] == a[i - 1])
            ++ lg;
        else
        {
            if(lg >= v)
            {
                val = a[i - 1];
                nr = lg;
            }

            lg = 1;
        }
}

void write()
{
    if(val == 0)
        fout << "-1" << '\n';
    else
        fout << val << ' ' << nr << '\n';
}

int main()
{
    read();
    sort(a, a + n);
    solve();
    write();

    return 0;
}