Cod sursa(job #2025493)

Utilizator SlevySlevoaca Stefan-Gabriel Slevy Data 22 septembrie 2017 19:17:59
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cstring>

using namespace std;

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

int main()
{
    int *p, n, minn, maxx, *frecv;

    in >> n;
    p = new int[n + 1];
    in >> p[1];
    minn = maxx = p[1];
    for (int i = 2; i <= n; i++)
    {
        in >> p[i];
        minn = min(minn, p[i]);
        maxx = max(maxx, p[i]);
    }
    in.close();

    int nr = maxx - minn + 1;
    frecv = new int[nr];
    memset(frecv, 0, nr * sizeof(int));

    for (int i = 1; i <= n; i++)
        frecv[p[i] - minn]++;

    int elem, nr_ap = 0;
    for (int i = 0; i < nr; i++)
        if (frecv[i] >= n/2 + 1) {

            elem = i + minn;
            nr_ap = frecv[i];
            break;
        }

    if (nr_ap == 0)
        out << -1 << "\n";
    else
        out << elem << " " << nr_ap << "\n";

    delete[] p;
    delete[] frecv;
    return 0;
}