Cod sursa(job #2693099)

Utilizator cristia_razvanCristia Razvan cristia_razvan Data 4 ianuarie 2021 19:42:28
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>
using namespace std;

ifstream fin("elmaj.in");
ofstream fout("elmaj.out");
int a[1000001], n;
int main()
{
    fin >> n;
    int ap = 0,cand;
    for (int i = 1; i <= n; i++)
        fin >> a[i];
    cand = a[1];
    ap = 1;
    for (int i = 2; i <= n; i++)
    {
        if (a[i] == cand)
            ap++;
        else {
            ap--;
            if (ap == -1)
            {
                cand = a[i];
                ap = 1;
            }
        }
    }
    ap = 0;
    for (int i = 1; i <= n; i++)
        if (a[i] == cand)
            ap++;
    if (ap > n / 2)
        fout << cand << " " << ap << "\n";
    else fout << "-1\n";
    fin.close();
    fout.close();
    return 0;
}