Cod sursa(job #2631341)

Utilizator chiroSebastian Chirodea chiro Data 29 iunie 2020 22:32:43
Problema Elementul majoritar Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f;
ofstream g;

long n, maj, crt, nr, i;

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

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

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

    else
    {

        f.close();
        f.open("elmaj.in");

        f >> n;
        nr = 0;

        for(i = 1; i <= n; i++)
        {
            f >> crt;
            if(crt == maj)
                nr++;
        }

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

    return 0;
}