Cod sursa(job #3279704)

Utilizator TiberiuStefanStefan Augustin Tiberiu TiberiuStefan Data 24 februarie 2025 07:56:01
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.96 kb
#include <vector>
#include <fstream>
using namespace std;
pair<int, int> findMajorityElement(const vector<int>& v, int n) {
    int candidate=-1;
    int count=0;
    for (int num : v) {
        if (count==0) {
            candidate=num;
            count=1;
        } else if (num==candidate) {
            count++;
        } else {
            count--;
        }
    }
    count=0;
    for (int num : v) {
        if (num==candidate) {
            count++;
        }
    }
    if (count>= n/2+1) {
        return {candidate,count};
    } else {
        return {-1,-1}; 
    }
}
int main() {
    ifstream cin("elmaj.in");
    ofstream cout("elmaj.out");
    int n;
    cin>>n;
    vector<int> v(n);
    for (int i=0;i<n;i++) {
        cin>>v[i];
    }
    auto result=findMajorityElement(v,n);
    if (result.first==-1) {
        cout<<-1<<endl;
    } else {
        cout<<result.first<<" "<<result.second<<endl;
    }
    return 0;
}