Cod sursa(job #2643873)

Utilizator Ionut_neuer58Raducu Ioan Stefan Ionut_neuer58 Data 21 august 2020 23:17:48
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <iostream>
#include <fstream>
#include <vector>
#define MOD 69420

using namespace std;

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

int n;
vector <int> v[MOD];
int nr, c;

int main()
{
    in>>n;
    for(int i=1; i<=n; i++) in>>nr, v[nr%MOD].push_back(nr);
    for(int i=0; i<MOD; i++)
        if(v[i].size()>=n/2+1)
    {
        nr=v[i][0], c=1;
        for(int j=1; j<v[i].size(); j++)
        {
            if(v[i][j]==nr) ++c;
            else --c;
            if(c==0) nr=v[i][j], ++c;
        }
        c=0;
        for(int j=0; j<v[i].size(); j++) c+=!!(nr==v[i][j]);
        i+=MOD;
    }
    if(c>=n/2+1) out<<nr<<' '<<c;
    else out<<-1;
    return 0;
}