Cod sursa(job #1074546)

Utilizator lorundlorund lorund Data 7 ianuarie 2014 18:58:39
Problema Elementul majoritar Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>

using namespace std;

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

int main()
{
    int N;
    int *v = new int[1000001];
    int maj=-1, c=0;

    in >> N;
    for (int i=0; i<N; ++i){
        in >> v[i];
        if (v[i]==maj){
            ++c;
        }
        else{
            if (c){
                --c;
            }
            else{
                maj = v[i];
                c = 1;
            }
        }
    }

    c = 0;
    for (int i=0; i<N; ++i){
        c += v[i]==maj;
    }

    if (c>=N/2+N%2)
        out << maj << ' ' << c;
    else
        out << -1;
    return 0;
}