Cod sursa(job #3315547)

Utilizator rania.butucButuc Rania-Andreea rania.butuc Data 14 octombrie 2025 18:40:15
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include <fstream>
#include<algorithm>
using namespace std;

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

int arr[1000001];

int Cnt(const int a[], int n, int x)
{
    int c = 0;
    for(int i = 0; i < n; i++)
        if(a[i] == x) c++;
    return c;
}

int elementmajoritar(const int a[], int n)
{
    if(n == 0) return -1;
    int cand = 0, cnt = 0;
    for(int i = 0; i < n; i++)
    {
        if(cnt == 0)
        {
            cand = a[i];
            cnt = 1;
        }
        else if(a[i] == cand) cnt++;
        else cnt--;
    }
    int cc = Cnt(a, n, cand);
    if(cc > n / 2) return cand;
    return -1;
}

int main()
{
    int n;
    cin >> n;
    for(int i = 0; i < n; i++)
    {
        cin >> arr[i];
    }
    int nr = elementmajoritar(arr, n);
    int nrr = Cnt(arr, n, nr);
    //if(nr == -1) cout << "NU";
     cout << nr << " " << nrr;
}