#include <iostream>
#include <algorithm>
#include <numeric>
#include <vector>
#include <iterator>
std::vector<int> getSurpasserVec(const std::vector<int> &vec)
{
std::vector<int> newvec;
for(int i=0; i< vec.size();++i)
{
int count = std::count_if(vec.begin() + (i+1), vec.end(), [vec,i](int n) { return n>vec[i]; });
newvec.push_back(count);
}
return newvec;
}
void printVec(const std::vector<int> &vec)
{
std::string sep = "";
for (auto i = vec.begin(); i != vec.end(); ++i)
{
std::cout << sep << *i ;
sep = ',';
}
std::cout << std::endl;
}
int main()
{
std::vector<int> vec_in = {34, 185, 56, 17, 8, 3, 98, 21, 10, 4, 77, 124};
printVec(vec_in);
std::vector<int> vec_out = getSurpasserVec(vec_in);
printVec(vec_out);
}