Cod sursa(job #3164873)

Utilizator BucsMateMate Bucs BucsMate Data 4 noiembrie 2023 16:40:04
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    ifstream input("elmaj.in");
    ofstream output("elmaj.out");
    int a[1000000], b[1000000], dbmaj=0, i, N, temp;
    input>>N;
    for(i=0; i<N; i++){
        input>>a[i];
        b[i]=a[i];
    }
    int bal=0, jobb=1;
    while(jobb<N){
        while(a[bal]==a[jobb] && jobb<N){
            jobb++;
        }
        if(jobb<N){
            a[bal]=-1;
            a[jobb]=-1;
        }
        jobb++;
        while(bal<N && a[bal]==-1){
            bal++;
        }
        if(jobb==bal){
            jobb++;
        }
    }
    if(bal>=N || a[bal]==-1) output<<-1;
    else {
        for(i=0; i<N; i++){
            if(b[i]==a[bal]) dbmaj++;
        }
        if(dbmaj>=N/2+1) output<<a[bal]<<" "<<dbmaj;
        else output<<-1;
    }
    return 0;
}