Cod sursa(job #1962664)

Utilizator gabor.vlad13lil pump gabor.vlad13 Data 11 aprilie 2017 22:33:40
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <cstdio>
#include <cstring>
#define NMAX 1000005

using namespace std;
int nr;
int vec[NMAX];

void solve()
{
    int ver = -1;
    int k = 0;
    for (int i=0; i<nr; i++)
    {
        if (k == 0)
            ver = vec[i], k = 1;
        else if (vec[i] == ver)
            k++;
        else
            k--;
    }

    int cnt = 0;
    for (int i=0; i<nr; i++)
        if (vec[i] == ver)
            cnt++;
    if (cnt > nr/2)
        printf("%d %d", ver, cnt);
    else
        printf("-1");
}

void read()
{
    scanf("%d\n", &nr);
    for (int i=0; i<nr; i++)
        scanf("%d ", &vec[i]);
}

int main()
{
    freopen("elmaj.in", "r", stdin);
    freopen("elmaj.out", "w", stdout);
    read();
    solve();
    return 0;
}