#include <iostream>
#include <vector>
using namespace std;
template <typename Iter>
vector<typename iterator_traits<Iter>::value_type>
function(Iter a, Iter b, Iter c)
{
vector<typename iterator_traits<Iter>::value_type> res;
for (; a != b; a++, c++)
{
if (*a < *c)
res.push_back(*a);
}
return res;
}
int main()
{
vector<int> v = { 1,2,3,4,5,6,7,8 };
vector<int> w = { 1,1,3,2,7,8,2,4 };
vector<int> res;
res = function(v.begin(), v.end(), w.begin());
for (size_t i = 0; i < res.size(); i++)
cout << res[i] << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnRlbXBsYXRlIDx0eXBlbmFtZSBJdGVyPgogICAgdmVjdG9yPHR5cGVuYW1lIGl0ZXJhdG9yX3RyYWl0czxJdGVyPjo6dmFsdWVfdHlwZT4KICAgIGZ1bmN0aW9uKEl0ZXIgYSwgSXRlciBiLCBJdGVyIGMpCnsKICAgIHZlY3Rvcjx0eXBlbmFtZSBpdGVyYXRvcl90cmFpdHM8SXRlcj46OnZhbHVlX3R5cGU+IHJlczsKICAgIGZvciAoOyBhICE9IGI7IGErKywgYysrKQogICAgewogICAgICAgIGlmICgqYSA8ICpjKQogICAgICAgICAgICByZXMucHVzaF9iYWNrKCphKTsKICAgIH0KICAgIHJldHVybiByZXM7Cn0KCmludCBtYWluKCkKewogICAgdmVjdG9yPGludD4gdiA9IHsgMSwyLDMsNCw1LDYsNyw4IH07CiAgICB2ZWN0b3I8aW50PiB3ID0geyAxLDEsMywyLDcsOCwyLDQgfTsKICAgIHZlY3RvcjxpbnQ+IHJlczsKICAgIHJlcyA9IGZ1bmN0aW9uKHYuYmVnaW4oKSwgdi5lbmQoKSwgdy5iZWdpbigpKTsKICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVzLnNpemUoKTsgaSsrKQogICAgICAgIGNvdXQgPDwgcmVzW2ldIDw8IGVuZGw7Cn0KCg==