Cod sursa(job #1500334)

Utilizator cristid9Cristi D cristid9 Data 11 octombrie 2015 19:18:21
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <iostream>
#include <fstream>

int main()
{
    std::ifstream fin("elmaj.in");
    std::ofstream fout("elmaj.out");

    int* seq;
    int size;

    fin >> size;
    seq = new int[size];

    fin >> seq[0];

    int candidate = seq[0];
    int occurences = 1;

    for (int i = 1; i < size; i++)
    {
        fin >> seq[i];
        if (seq[i] == candidate)
            occurences++;
        else
            occurences--;

        if (occurences == 0)
        {
            candidate = seq[i];
            occurences = 1;
        }
    }

    occurences = 0;
    for (int i = 0; i < size; i++)
    {
        if (seq[i] == candidate)
            occurences++;
    }

    if (occurences >= size / 2 + 1)
    {
        fout << candidate << " " << occurences;
    }
    else
    {
        fout << "-1";
    }


    delete seq;
    fin.close();
    fout.close();

    return 0;
}