#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
void ShowVector(const std::vector<int> &v) {
std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
}
void ShowNewLine() { std::cout << std::endl; }
void ShowResults(const std::vector<int> &a, const std::vector<int> &b,
const std::vector<int> &c) {
std::cout << "results:" << std::endl;
ShowVector(a);
ShowNewLine();
ShowVector(b);
ShowNewLine();
ShowVector(c);
ShowNewLine();
}
int main() {
std::vector<int> a = {1, 2, 3, 4, 3, 2, 1};
std::vector<int> b = {1, 1, 2, 2, 3, 3, 4};
std::vector<int> c;
auto max_element = [](int a, int b) { return std::max(a, b); };
auto inserter = std::back_inserter(c);
std::transform(a.begin(), a.end(), b.begin(), inserter, max_element);
ShowResults(a, b, c);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8aXRlcmF0b3I+Cgp2b2lkIFNob3dWZWN0b3IoY29uc3Qgc3RkOjp2ZWN0b3I8aW50PiAmdikgewogIHN0ZDo6Y29weSh2LmJlZ2luKCksIHYuZW5kKCksIHN0ZDo6b3N0cmVhbV9pdGVyYXRvcjxpbnQ+KHN0ZDo6Y291dCwgIiAiKSk7Cn0KCnZvaWQgU2hvd05ld0xpbmUoKSB7IHN0ZDo6Y291dCA8PCBzdGQ6OmVuZGw7IH0KCnZvaWQgU2hvd1Jlc3VsdHMoY29uc3Qgc3RkOjp2ZWN0b3I8aW50PiAmYSwgY29uc3Qgc3RkOjp2ZWN0b3I8aW50PiAmYiwKICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxpbnQ+ICZjKSB7CiAgc3RkOjpjb3V0IDw8ICJyZXN1bHRzOiIgPDwgc3RkOjplbmRsOwogIFNob3dWZWN0b3IoYSk7CiAgU2hvd05ld0xpbmUoKTsKICBTaG93VmVjdG9yKGIpOwogIFNob3dOZXdMaW5lKCk7CiAgU2hvd1ZlY3RvcihjKTsKICBTaG93TmV3TGluZSgpOwp9CgppbnQgbWFpbigpIHsKICBzdGQ6OnZlY3RvcjxpbnQ+IGEgPSB7MSwgMiwgMywgNCwgMywgMiwgMX07CiAgc3RkOjp2ZWN0b3I8aW50PiBiID0gezEsIDEsIDIsIDIsIDMsIDMsIDR9OwogIHN0ZDo6dmVjdG9yPGludD4gYzsKICBhdXRvIG1heF9lbGVtZW50ID0gW10oaW50IGEsIGludCBiKSB7IHJldHVybiBzdGQ6Om1heChhLCBiKTsgfTsKICBhdXRvIGluc2VydGVyID0gc3RkOjpiYWNrX2luc2VydGVyKGMpOwogIHN0ZDo6dHJhbnNmb3JtKGEuYmVnaW4oKSwgYS5lbmQoKSwgYi5iZWdpbigpLCBpbnNlcnRlciwgbWF4X2VsZW1lbnQpOwogIFNob3dSZXN1bHRzKGEsIGIsIGMpOwp9