Cod sursa(job #2251468)

Utilizator st_marianStoica Marian st_marian Data 1 octombrie 2018 17:25:04
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("elmaj.in");
ofstream fout("elmaj.out");
int n;
vector<int> elem;
int main()
{
    fin>>n;
    for(int i=0; i<n; i++)
    {
        int x;
        fin>>x;
        elem.push_back(x);
    }
    int candidat=elem[0];
    int counter=1;
    for(int i=1; i<elem.size(); i++)
    {
        if(elem[i]==candidat)   counter++;
        else counter--;
        if(!counter)
        {
            candidat=elem[i];
            counter=1;
        }
    }
    counter=0;
    for(int i=0; i<elem.size(); i++)
        if(elem[i]==candidat)   counter++;
    if(counter>n/2) fout<<candidat<<' '<<counter<<'\n';
    else fout<<-1<<'\n';
    return 0;
}