Cod sursa(job #2135760)

Utilizator CammieCamelia Lazar Cammie Data 19 februarie 2018 10:42:20
Problema Elementul majoritar Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <fstream>

#define MAXN 100005

using namespace std;

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

int N, a[MAXN];

inline void Read() {
    fin >> N;

    int cand = -1, k = 0, sol = 0;

    for (int i = 1; i <= N; i++) {
        fin >> a[i];

        if (k == 0) {
            cand = a[i];
            k = 1;
        }
        else if (cand == a[i]) {
            k++;
        }
        else
            k--;
    }

    if (cand == -1)
        fout << cand;
    else {
        for (int i = 1; i <= N; i++) {
            if (cand == a[i])
                sol++;
        }

        if (sol > N / 2) {
            fout << cand << " " << sol;
        }
        else
            fout << "\n";
    }
}

int main () {
    Read();

    fin.close(); fout.close(); return 0;
}