Cod sursa(job #1131299)

Utilizator QuickFingersQuick Fingers QuickFingers Data 28 februarie 2014 19:12:31
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <cstdio>

#define NMAX 1000007

using namespace std;

int n, a[NMAX];

int main(){
    freopen("elmaj.in", "r", stdin);
    freopen("elmaj.out", "w", stdout);
    scanf("%d", &n);
    for(int i = 1; i <= n; ++i)
        scanf("%d", &a[i]);
    int Cnt = 1, Ans = a[1];
    for(int i = 2; i <= n; ++i)
        if(a[i] == Ans)
            ++Cnt;
        else{
            --Cnt;
            if(Cnt == 0){
                Cnt = 1;
                Ans = a[i];
            }
        }
    Cnt = 0;
    for(int i = 1; i <= n; ++i)
        if(Ans == a[i])
            ++Cnt;
    if(Cnt >= (n / 2) + 1)
        printf("%d %d\n", Ans, Cnt);
    else
        printf("-1\n");
    return 0;
}