Cod sursa(job #916156)

Utilizator TeodoraTanaseTeodora Tanase TeodoraTanase Data 15 martie 2013 21:50:24
Problema Elementul majoritar Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <cstdio>
#include <algorithm>

#define NMAX 1000001

using namespace std;

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

void read()
{
    freopen("elmaj.in", "r", stdin);

    scanf("%d\n", &n);

    for(int i = 0; i < n; scanf("%d ", &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()
{
    freopen("elmaj.out", "w", stdout);

    if(val == 0)
        printf("-1\n");
    else
        printf("%d %d\n", val, nr);
}

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

    return 0;
}