Cod sursa(job #3238576)

Utilizator davidpandele0Pandele David davidpandele0 Data 26 iulie 2024 18:44:09
Problema Elementul majoritar Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include<fstream>

using namespace std;

ifstream fin("elamj.in");
ofstream fout("elamj.out");

int v[1000000], n;

void citire(int n, int v[])
{
    for (int i = 0; i < n; ++i)
    {
        fin >> v[i];
    }
}

int cnt = 0;

int majoritar(int n, int v[])
{
    int major, contor = 1;
    major = v[0];
    for (int i = 1; i < n; ++i)
    {
        if (v[i] != v[i - 1])
        {
            contor++;
        }
        else
            contor--;
        if (contor == 0)
            major = v[i];
    }
    for (int i = 0; i < n; ++i)
    {
        if (v[i] == major)
            cnt++;
    }
    if (cnt > n / 2)
        return major;
    return -1;
}


int main()
{
    fin >> n;
    citire(n, v);
    fout << "\n";
    fout << majoritar(n, v) << ' ' << cnt;
    return 0;
}