Cod sursa(job #2369438)

Utilizator RussianSmoothCriminalRodion Raskolnikov RussianSmoothCriminal Data 5 martie 2019 23:15:27
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#include <iostream>
using namespace std;

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

typedef long long ll;
int a[1000001], n;
void Solve ()
{
    int cand, k, nrap, i;
    fin >> n;
    for (i = 1; i <= n; i++)
        fin >> a[i];
    cand = a[1];
    k = 0;
    for (i = 2; i <= n; i++)
    {
        if (a[i] == cand)
            k++;
        else
            k--;
        if (k < 0)
        {
            cand = a[i];
            k = 0;
        }
    }
    nrap = 0;
    for (i = 1; i <= n; i++)
        if (a[i] == cand)
            nrap++;
    if (nrap >= (n + 1) / 2)
        fout << cand << " " << nrap << "\n";
    else fout << "-1\n";
}

int main()
{
    Solve();
    return 0;
}