Cod sursa(job #3162216)

Utilizator CipriEuCruceanu Ciprian Constantin CipriEu Data 28 octombrie 2023 16:38:29
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include<bits/stdc++.h>
using namespace std;
ifstream fin("elmaj.in");
ofstream fout("elmaj.out");
const int mod = 123457;
int n, k, maxim = 0, sol;
struct nr{
    int val, cnt;
    nr(int x){
        val = x;
        cnt = 1;
    }
};
vector<nr> h[123457];

void add(int x){
    int e = x%mod;
    for(int i=0; i<h[e].size(); i++){
        if(h[e][i].val == x){
            h[e][i].cnt++;
            if(h[e][i].cnt > maxim){
                maxim = h[e][i].cnt;
                sol = x;  
            }
            return;
        }
    }
    h[e].push_back(nr(x));
}

int main(){
    fin>>n;
    for(int i=1; i<=n; i++){
        fin>>k;
        add(k);
    }
    if(maxim >= n/2+1) fout<<sol<<" "<<maxim;
    else fout<<-1;
}