#include <bits/stdc++.h>
using namespace std;
int majority_element(vector<int> &nums){
int cur_major;
int cur_major_count = 0;
for (int num: nums){
if(cur_major_count== 0){
cur_major = num;
cur_major_count++;
} else{
if(cur_major == num){
cur_major_count++;
} else {
cur_major_count --;
}
}
}
return cur_major;
}
int main(){
vector<int> num_in;
string num_in_str;
int temp_num;
cout << "Enter the array. Each element separated by a comma and a space. (e.g. 2, 2, 1, 1, 2, 2)\n> " ;
getline(cin, num_in_str);
stringstream ss(num_in_str);
while(ss >> temp_num){
num_in.push_back(temp_num);
if(ss.peek() == ' ' || ss.peek() == ','){
ss.ignore();
}
}
cout << "Majority element: " << majority_element(num_in);
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFqb3JpdHlfZWxlbWVudCh2ZWN0b3I8aW50PiAmbnVtcyl7CiAgICBpbnQgY3VyX21ham9yOwogICAgaW50IGN1cl9tYWpvcl9jb3VudCA9IDA7CgogICAgZm9yIChpbnQgbnVtOiBudW1zKXsKICAgICAgICBpZihjdXJfbWFqb3JfY291bnQ9PSAwKXsKICAgICAgICAgICAgY3VyX21ham9yID0gbnVtOwogICAgICAgICAgICBjdXJfbWFqb3JfY291bnQrKzsKICAgICAgICB9IGVsc2V7CiAgICAgICAgICAgIGlmKGN1cl9tYWpvciA9PSBudW0pewogICAgICAgICAgICAgICAgY3VyX21ham9yX2NvdW50Kys7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBjdXJfbWFqb3JfY291bnQgLS07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIGN1cl9tYWpvcjsKfQoKaW50IG1haW4oKXsKICAgIHZlY3RvcjxpbnQ+IG51bV9pbjsKICAgIHN0cmluZyBudW1faW5fc3RyOwogICAgaW50IHRlbXBfbnVtOwoKICAgIGNvdXQgPDwgIkVudGVyIHRoZSBhcnJheS4gRWFjaCBlbGVtZW50IHNlcGFyYXRlZCBieSBhIGNvbW1hIGFuZCBhIHNwYWNlLiAoZS5nLiAyLCAyLCAxLCAxLCAyLCAyKVxuPiAiIDsKICAgIGdldGxpbmUoY2luLCBudW1faW5fc3RyKTsKICAgIHN0cmluZ3N0cmVhbSBzcyhudW1faW5fc3RyKTsKCiAgICB3aGlsZShzcyA+PiB0ZW1wX251bSl7CiAgICAgICAgbnVtX2luLnB1c2hfYmFjayh0ZW1wX251bSk7CgogICAgICAgIGlmKHNzLnBlZWsoKSA9PSAnICcgfHwgc3MucGVlaygpID09ICcsJyl7CiAgICAgICAgICAgIHNzLmlnbm9yZSgpOwogICAgICAgIH0KICAgIH0KCiAgICBjb3V0IDw8ICJNYWpvcml0eSBlbGVtZW50OiAiIDw8IG1ham9yaXR5X2VsZW1lbnQobnVtX2luKTsKfQ==
MiwgMiwgMSwgMSwgMiwgMiwgMSwgMiwgMg==
2, 2, 1, 1, 2, 2, 1, 2, 2