Cod sursa(job #2701752)

Utilizator cosmaandreiCosma Andrei cosmaandrei Data 1 februarie 2021 17:11:10
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("elmaj.in");
ofstream fout("elmaj.out");
int k, c, n, v[1000009];

inline pair<int, int> elementMajoritar(){
    c = -1;
    fin>>n;
    for( int i = 1; i <= n; ++i ){
        fin>>v[i];
        if( k == 0 ){
            c = v[i];
            k = 1;
        }
        else if( c == v[i] )
            k++;
        else
            k--;
    }
    int contor = 0;
    for( int i = 1; i <= n; ++i )
        if( v[i] == c )
            contor++;
    return {(contor >= n/2+1 ? c : -1), contor};
}
int main(){
    auto r = elementMajoritar();
    if(r.first == -1)
        fout<<-1;
    else
        fout<<r.first<<" "<<r.second;
    return 0;
}