#include <vector>
#include <iostream>
#include <iomanip>

using namespace std;

using Vector = vector<int>;

Vector operator&(const Vector& a, const Vector& b)
{
    if (a.size() != b.size()) throw runtime_error("a.size() != b.size()");
    Vector c(a.size());
    for(int i = 0; i < a.size(); ++i)
        c[i] = a[i] > b[i] ? a[i] : b[i];
    return c;
}


int main(int argc, char * argv[])
{
    vector<int> a = { 1,2,3,4,5,6,7,8 };
    vector<int> b = { 8,7,6,5,4,3,2,1 };

    for(auto i: a&b) cout << i << " ";
}
