Cod sursa(job #3205248)

Utilizator TheodosiusOancea Teodor Stefan Theodosius Data 19 februarie 2024 09:43:16
Problema Elementul majoritar Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
int n;
int main()
{
    freopen("elmaj.in","r",stdin);
    freopen("elmaj.out","w",stdout);
    scanf("%d",&n);
    long long *v=(long long *)malloc(sizeof(long long)*n);
    for(int i=0;i<n;i++)
    scanf("%lld",&v[i]);
    long long cand=INT_MIN;
    int cnt=0;
    for(int i=0;i<n;i++){
        if(cnt==0){
            cand=v[i];
            cnt=1;
        }
        else if(v[i]==cand)cnt++;
        else cnt--;
    }
    cnt=0;
    for(int i=0;i<n;i++)
    if(v[i]==cand) cnt++;
    if(2*cnt>n) printf("%lld %d",cand,cnt);
    else printf("-1");

    return 0;
}