Cod sursa(job #1167563)

Utilizator romircea2010FMI Trifan Mircea Mihai romircea2010 Data 5 aprilie 2014 14:50:56
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <fstream>

using namespace std;

const int NMax = 1000010;

int n;
int a[NMax];

void Read()
{
    ifstream f ("elmaj.in");
    f >> n;
    for (int i = 1; i <= n; ++ i)
        f >> a[i];
    f.close();
}

void Solve()
{
    int candy = a[1], count = 1;
    for (int i = 2; i <= n; ++ i)
    {
        if (a[i] == candy)
            ++count;
        else
            --count;
        if (count == 0)
        {
            candy = a[i];
            count = 1;
        }
    }
    count = 0;
    for (int i = 1; i<=n; ++ i)
        if (candy == a[i])
            ++count;
    int lim = n / 2 + 1;
    if (count >= lim)
    {
        ofstream g("elmaj.out");
        g << candy << " " << count << "\n";
        g.close();
    }
    else
    {
        ofstream g("elmaj.out");
        g << "-1\n";
        g.close();
    }
}

int main()
{
    Read();
    Solve();
    return 0;
}