Cod sursa(job #2201841)

Utilizator sauron275Andrei Radu sauron275 Data 6 mai 2018 12:03:44
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <algorithm>
#include <fstream>

using namespace std;

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

int v[1000001];

int majoritar(int n, int v[], int &x)
{
    int i = 0;
    while(i < n)
    {
        int j = i;
        while(j < n && v[j + 1] == v[i])
            j++;
        if(j - i + 1 > n / 2)
        {
            x = j - i + 1;
            return v[i];
        }
        i = j + 1;
    }
    return 0;
}

int main()
{
    int n, x, y;
    f >> n;
    for(int i = 1; i <= n; i++)
        f >> v[i];
    sort(v + 1, v + n + 1);
    y = majoritar(n, v, x);
    if(y == 0)
        g << "NU";
    else
        g << y << ' ' << x ;
    return 0;
}