Cod sursa(job #2627549)

Utilizator pregoliStana Andrei pregoli Data 11 iunie 2020 12:19:57
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>
#define newline '\n'
using namespace std;
ifstream fin("elmaj.in");
ofstream fout("elmaj.out");
///***********************
const int NMAX = 1e6 + 3;
int v[NMAX], n;

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

    int cnt = 0, cand = -1;
    for (int i = 1; i <= n; i++)
        if (!cnt)
        {
            cnt++;
            cand = v[i];
        }
        else if (v[i] == cand)
            cnt++;
        else
            cnt--;

    int ap = 0;
    for (int i = 1; i <= n; i++)
        if (v[i] == cand)
            ap++;

    if (ap > n / 2)
        fout << cand << ' ' << ap << newline;
    else
        fout << -1;
    fout.close();
    return 0;
}