Cod sursa(job #2424378)

Utilizator xtreme77Patrick Sava xtreme77 Data 22 mai 2019 22:18:44
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>

using namespace std;

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

const int MAX = 1e6 + 14;
int v [MAX];

int main() {
    int n;
    cin >> n;
    for (int i = 1; i <= n; ++ i)
        cin >> v [i];
    int candidate = v [1];
    int chances = 1;
    for (int i = 2; i <= n; ++ i)
    {
        if (v [i] == candidate)
            chances += 1;
        else
        {
            chances -= 1;
            chances = max (chances, 0);
            if (chances == 0)
                candidate = v [i];
        }
    }
    int ap = 0;
    for (int i = 1; i <= n; ++ i)
        if (v [i] == candidate)
            ap += 1;
    if (ap >= n/2 + 1)
        cout << candidate << " " << ap << '\n';
    else cout << -1;
    return 0;
}