Pagini recente » Borderou de evaluare (job #1085334) | Cod sursa (job #3193393) | Cod sursa (job #1727194) | Borderou de evaluare (job #1072425) | Cod sursa (job #3279704)
#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;
}