Cod sursa(job #1321496)

Utilizator oprea1si2si3Oprea Sebastian oprea1si2si3 Data 19 ianuarie 2015 10:54:31
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
using namespace std;
ifstream in("elmaj.in");
ofstream out("elmaj.out");


int n, v[1000010];

int main () {
    int i, cand, k;
    in >> n;
    in >> v[1];
    cand = v[1];
    k = 1;
    for (i = 2; i <= n; ++i) {
        in >> v[i];
        if (v[i] == cand)
            k++;
        else {
            if (k == 0) {
                cand = v[i];
                k = 1;
            }
            else
                k--;
        }
    }

    k=0;
    for (i = 1; i <= n; ++i)
        if(cand == v[i])
            k++;
    if(k >= (n/2)+1)
        out << cand << ' ' << k << '\n';
    else
        out << "-1" << '\n';

    in.close();
    out.close();
    return 0;
}