Cod sursa(job #2951628)

Utilizator zarg169Roxana zarg169 Data 6 decembrie 2022 20:22:04
Problema Elementul majoritar Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
// https://infoarena.ro/problema/elmaj - Problem to be solved

#include <iostream>
#include <fstream>

using namespace std;

int v[1000001];

int guess(int n) {
    int cnt = 1, k = 1;
    for (int i = 2; i <= n; ++i) {
        if (v[k] == v[i]) {
            cnt += 1;
        } else {
            cnt -= 1;
        }
        if (cnt == 0) {
            k = i;
            cnt = 1;
        }
    }
    return v[k];
}

int main()
{
    ifstream fin("elmaj.in");
    ofstream fout("elmaj.out");
    int n, count_guess = 0;
    fin >> n;
    for (int i = 1; i <= n; ++i) {
        fin >> v[i];
    }

    for (int i = 1; i <= n; ++i) {
        if (guess(n) == v[i]) {
            count_guess += 1;
        }
    }
    if (count_guess >= n/2 + 1) {
        fout << guess(n) << " " << count_guess;
    } else {
        return -1;
    }
}