Cod sursa(job #1993560)

Utilizator dahaandreiDaha Andrei Codrin dahaandrei Data 23 iunie 2017 11:50:57
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream in("elmaj.in");
ofstream out("elmaj.out");

int cnt, n, v[1000001], i, expected;

int main (){
    in >> n;

    for (int i = 1; i <= n; ++ i){
        in >> v[i];
    }

    for (i = 1; i <= n ;++ i){
        if (v[i] == expected)
            cnt ++;
        if (v[i] != expected)
            cnt --;
        if (v[i] != expected && cnt <= 0){
            expected = v[i];
            cnt = 1;
        }
    }

    cnt = 0;
    for (i = 1; i <= n; ++ i){
        if (v[i] == expected)
            cnt ++;
    }

    if (cnt >= n / 2 + 1)
        out << expected << " " << cnt;
    else
        out << -1;



    return 0;
}