Cod sursa(job #2982938)

Utilizator MesterelMester Darius Mesterel Data 21 februarie 2023 10:28:16
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <fstream>
using namespace std;

int ap[4][1001];

int main(){
    ifstream fin("elmaj.in");
    ofstream fout("elmaj.out");
    int baza=1000,nr,n;
    fin>>n;
    while (fin>>nr)
        for (int i=0; i<4 && nr; ++i, nr/=1000)
            ++ap[i][nr%1000];
    fin.close();
    int nrmaj=0;
    for(int i=0; i<1000; ++i){
        if (ap[0][i]>n/2)
            nrmaj+=i;
        if (ap[1][i]>n/2)
            nrmaj+=i*1000;
        if (ap[2][i]>n/2)
            nrmaj+=i*1000000;
        if (ap[3][i]>n/2)
            nrmaj+=i*1000000000;
    }
    ifstream f("elmaj.in");
    int cont=0;
    f>>n;
    while (f>>nr)
        if (nr==nrmaj)
            ++cont;
    if (cont>n/2)
        fout<<nrmaj<<' '<<cont;
    else fout<<-1;
}