Cod sursa(job #2631516)

Utilizator chiroSebastian Chirodea chiro Data 30 iunie 2020 13:54:31
Problema Elementul majoritar Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f;
ofstream g;

long n, maj, nr, i;

int main()
{
    f.open("elmaj.in");
    g.open("elmaj.out");

    f >> n;

    long v[n];

    for(i = 0; i < n; i++)
    {
        f >> v[i];
        if(v[i] == maj)
            nr++;
        else
        {
            if(nr == 0)
            {
                nr = 1;
                maj = v[i];
            }
            else
                nr--;
        }
    }

    if(nr == 0)
        g << -1;

    else
    {
        nr = 0;
        for(i = 1; i <= n; i++)
        {
            f >> v[i];
            if(v[i] == maj)
                nr++;
        }

        if(nr >= n/2 + 1)
            g << maj << " " << nr;
        else
            g << -1;
    }

    f.close();
    g.close();

    return 0;
}