Cod sursa(job #1974656)

Utilizator papinub2Papa Valentin papinub2 Data 28 aprilie 2017 13:06:38
Problema Elementul majoritar Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
# include <fstream>

using namespace std;

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

int n, sm, w, cnt, maxim, nr;
int v[1000010];

int main()
{
    in >> n;

    cnt = 1;
    w = 1;

    for (int i = 1; i <= n; i++)
        in >> v[i];

    sm = v[1];

    for (int i = 1; i < n; i++)
    {
        if (v[i] == v[i+1])
        {
            w++;
            cnt++;
            if (w > maxim)
                maxim = w;
        }

        else

        {
            w = 1;
            cnt--;
            if (cnt == 0)
            {
                sm = v[i+1];
                cnt = 1;
            }
        }
    }

    for (int i = 1; i <= n; i++)
    {
        if (v[i] == sm)
            nr++;
    }

    if (nr >= n/2 + 1)
        out << sm << ' ' << nr;

    else

        out << -1;

    return 0;
}