#include <iostream>
#include <utility>
#include <vector>
using namespace std;
void count_equal_elements(vector<int>& vec, vector<pair<int,int> >& result){
if (vec.empty())
return;
int curr = vec[0];
int count = 1;
for (vector<int>::iterator it = vec.begin()+1; it != vec.end(); ++it){
if (curr == *it){
count++;
}
else{
result.push_back(make_pair(curr,count));
curr = *it;
count = 1;
}
}
result.push_back(make_pair(curr,count));
}
int main() {
vector<int> input{1,1,2,3,3,3,1,1};
vector<pair<int,int>> output;
count_equal_elements(input,output);
for (auto elem : output)
cout << elem.first << "," << elem.second << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dXRpbGl0eT4KI2luY2x1ZGUgPHZlY3Rvcj4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIGNvdW50X2VxdWFsX2VsZW1lbnRzKHZlY3RvcjxpbnQ+JiB2ZWMsIHZlY3RvcjxwYWlyPGludCxpbnQ+ID4mIHJlc3VsdCl7CglpZiAodmVjLmVtcHR5KCkpCgkJcmV0dXJuOwoJaW50IGN1cnIgPSB2ZWNbMF07CglpbnQgY291bnQgPSAxOwoJZm9yICh2ZWN0b3I8aW50Pjo6aXRlcmF0b3IgaXQgPSB2ZWMuYmVnaW4oKSsxOyBpdCAhPSB2ZWMuZW5kKCk7ICsraXQpewoJCWlmIChjdXJyID09ICppdCl7CgkJCWNvdW50Kys7CgkJfQoJCWVsc2V7CgkJCXJlc3VsdC5wdXNoX2JhY2sobWFrZV9wYWlyKGN1cnIsY291bnQpKTsKCQkJY3VyciA9ICppdDsKCQkJY291bnQgPSAxOwoJCX0KCX0KCXJlc3VsdC5wdXNoX2JhY2sobWFrZV9wYWlyKGN1cnIsY291bnQpKTsKfQoKaW50IG1haW4oKSB7Cgl2ZWN0b3I8aW50PiBpbnB1dHsxLDEsMiwzLDMsMywxLDF9OwoJdmVjdG9yPHBhaXI8aW50LGludD4+IG91dHB1dDsKCQoJY291bnRfZXF1YWxfZWxlbWVudHMoaW5wdXQsb3V0cHV0KTsKCQoJZm9yIChhdXRvIGVsZW0gOiBvdXRwdXQpCgkJY291dCA8PCBlbGVtLmZpcnN0IDw8ICIsIiA8PCBlbGVtLnNlY29uZCA8PCBlbmRsOwoJCQoJcmV0dXJuIDA7Cn0=