Cod sursa(job #2555106)

Utilizator bmarcuBogdan Marcu bmarcu Data 23 februarie 2020 18:28:15
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <bits/stdc++.h>
#define NMAX 1000001

using namespace std;

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

int v[NMAX];

int main () {
    int n;
    int emaj;
    int f = 0;
    fin >> n;
    for (int i = 1; i <= n; i++)
        fin >> v[i];
    emaj = v[1];

    for (int i = 1; i <= n; i++) {
        if (v[i] == emaj)
            f++;
        else
            f--;
        if (f == 0) {
            emaj = v[i];
            f = 1;
        }
    }

    f = 0;
    for (int i = 1; i <= n; i++)
        if (v[i] == emaj)
            f++;
    if (f >= n / 2 + 1)
        fout << emaj << ' ' << f;
    else
        fout << -1;

}