#include <algorithm>
#include <vector>
#include <iterator>
#include <functional>
#include <iostream>
int main()
{
std::vector<int> v { 1, 1, 2, 3, 3, 5, 5, 5 };
auto i = begin(v);
while (i != end(v))
{
auto ub = adjacent_find(i, end(v), std::not_equal_to<int>());
if (ub == end(v)) { std::cout << distance(i, ub); break; }
std::cout << distance(i, ub) + 1 << std::endl;
i = next(ub);
}
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGl0ZXJhdG9yPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKaW50IG1haW4oKQp7CiAgICBzdGQ6OnZlY3RvcjxpbnQ+IHYgeyAxLCAxLCAyLCAzLCAzLCA1LCA1LCA1IH07CgogICAgYXV0byBpID0gYmVnaW4odik7CiAgICB3aGlsZSAoaSAhPSBlbmQodikpCiAgICB7CiAgICAgICAgYXV0byB1YiA9IGFkamFjZW50X2ZpbmQoaSwgZW5kKHYpLCBzdGQ6Om5vdF9lcXVhbF90bzxpbnQ+KCkpOwogICAgICAgIGlmICh1YiA9PSBlbmQodikpIHsgc3RkOjpjb3V0IDw8IGRpc3RhbmNlKGksIHViKTsgYnJlYWs7IH0KICAgICAgICBzdGQ6OmNvdXQgPDwgZGlzdGFuY2UoaSwgdWIpICsgMSA8PCBzdGQ6OmVuZGw7CiAgICAgICAgaSA9IG5leHQodWIpOwogICAgfQp9Cg==