Cod sursa(job #1163915)

Utilizator supermitelArdelean Razvan Mitel supermitel Data 1 aprilie 2014 18:31:19
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>

using namespace std;
int a[1000010], n;

void solve()
{
    int k = 0, crt = -1;
    for(int i = 0; i < n; i++)
        if(k == 0)
    {
        crt = a[i];
        k++;
    }
        else if(a[i] == crt)
            k++;
        else
            k--;
    if(crt == -1)
    {
        printf("-1\n");
        return ;
    }

    int napar = 0;
    for(int i = 0 ; i< n; i++)
        if(a[i] == crt)
            napar++;
    if(napar >= n/2+1)
        printf("%d %d\n", crt, napar);
    else
        printf("-1\n");
}

int main()
{
    freopen("elmaj.in", "r", stdin);
    freopen("elmaj.out", "w", stdout);
    scanf("%d", &n);
    for(int i = 0; i < n; i++)
        scanf("%d", &a[i]);
    solve();
    return 0;
}