Cod sursa(job #2034499)

Utilizator andreisontea01Andrei Sontea andreisontea01 Data 7 octombrie 2017 22:04:28
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <cstdio>
#include <iostream>

using namespace std;

int numere[1000001];

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