Cod sursa(job #2606603)

Utilizator Tudor_PascaTudor Pasca Tudor_Pasca Data 28 aprilie 2020 08:54:36
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int n;
int v[1000001];
pair<int, int> elmaj;

int main()
{
    in >> n;

    for(int i = 0; i < n; i++)
        in >> v[i];

    elmaj.first = v[0];
    elmaj.second = 1;

    for(int i = 1; i < n; i++)
    {
        if(elmaj.second == 0)
            elmaj.first = v[i];

        if(v[i] == elmaj.first)
            elmaj.second++;
        else
            elmaj.second--;
    }

    int cont = 0;

    for(int i = 0; i < n; i++)
        if(v[i] == elmaj.first)
            cont++;

    if(cont >= n/2 + 1)
        out << elmaj.first << ' ' << cont << '\n';
    else
        out << "-1\n";

    return 0;
}