Cod sursa(job #1348959)

Utilizator Edsger.DijkstraEdsger Wybe Dijkstra Edsger.Dijkstra Data 19 februarie 2015 22:00:42
Problema Elementul majoritar Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int MAXN = 100010;

int V[MAXN];

int main()
{
    int N, i, elmaj, ap;

    in >> N;
    for (i = 1; i <= N; i ++)
        in >> V[i];

    elmaj = V[1];
    ap = 1;
    for (i = 2; i <= N; i ++)
        if (V[i] == elmaj)
            ap ++;
        else{
            ap --;

            if (ap < 0)
                elmaj = V[i], ap = 0;
        }

    ap = 0;
    for (i = 1; i <= N; i ++)
        if (V[i] == elmaj)
            ap ++;

    if (ap > (N / 2))
        out << elmaj << " " << ap;
    else
        out << -1;

    return 0;
}