Cod sursa(job #2050427)

Utilizator Mirela_MagdalenaCatrina Mirela Mirela_Magdalena Data 28 octombrie 2017 09:52:07
Problema Elementul majoritar Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <cstdio>

using namespace std;
int n;
int a[1000001];

void frecv(int c)
{
    int fr=0;
    for(int i=0; i<=n; i++)
        if(a[i] == c)
            fr++;
    if(fr >= n/2+1)
        printf("%d %d", c, fr);
    else printf("-1");
}

void citire(int c)
{
    scanf("%d", &a[0]);
    c = a[0];
    for(int i=1; i<n; i++)
        scanf("%d", &a[i]);
}

int main()
{
    freopen("elmaj.in", "r", stdin);
    freopen("elmaj.out", "w", stdout);
    scanf("%d", &n);
    int nr=1, c;
    citire(c);
    for(int i=0; i<n; i++)
    {
        if(a[i-1] == a[i])
            nr++;
        else{
            if(nr == 0)
                {c = a[i]; nr = 1;}
            nr--;
        }
    }
    frecv(c);
    return 0;
}