Cod sursa(job #2050409)

Utilizator SoranaAureliaCatrina Sorana SoranaAurelia Data 28 octombrie 2017 09:48:43
Problema Elementul majoritar Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <cstdio>
using namespace std;

int n;
int a[1000001];
int nr=1;
int main()
{
    freopen("elmaj.in", "r", stdin);
    freopen("elmaj.out", "w", stdout);

    scanf("%d ", &n);

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

    }
    if(a[n-1]!=a[n-2] && nr==0)
        c=a[n-1];
    nr=0;
    for(int i=0; i<n; i++)
        if(a[i]==c)
            nr++;
    if(nr<(n/2+1))
        printf("-1");
    else
        printf("%d %d", c, nr);


    return 0;
}