#include <string.h>
#include <iostream>
using namespace std;
class MyArray {
int size;
int* ptr;
friend ostream& operator<<(ostream& os, MyArray& m);
public:
MyArray() {
this->size = 6;
this->ptr = new int[6];
}
MyArray(int a): size(a) {
this->ptr = new int[this->size];
}
MyArray(const MyArray& m):size(m.size) {
ptr = new int[size];
memcpy(ptr, m.ptr, size*sizeof(int));
}
int getSize() {
return size;
}
int& operator[](int i) {
return ptr[i];
}
MyArray operator+ (MyArray & m) {
MyArray ma(size);
for (int i = 0; i < this->size; i++) {
ma.ptr[i] = ptr[i] + m.ptr[i];
}
return ma;
}
MyArray operator+ (int& m) {
MyArray ma(size);
for (int i = 0; i < this->size; i++) {
ma.ptr[i] = ptr[i] + m;
}
return ma;
}
MyArray operator- (MyArray& m) {
MyArray ma(size);
for (int i = 0; i < this->size; i++) {
ma.ptr[i] = ptr[i] - m.ptr[i];
}
return ma;
}
int operator*(MyArray& m) {
int n = 0;
for (int i = 0; i < this->size; i++) {
n += (ptr[i]*m.ptr[i]);
}
return n;
}
};
ostream& operator<<(ostream& os, MyArray& m) {
for (int i = 0; i < m.size; i++) {
os << m.ptr[i];
if (i != m.size - 1) {
os << ",";
}
}
os << endl;
return os;
}
int main() {
int n;
cin >> n;
MyArray arr1(n);
for (int i = 0; i < arr1.getSize(); i++)
cin >> arr1[i];
cout << arr1;
MyArray arr2(arr1);
for (int i = 0; i < arr2.getSize(); i++)
arr2[i] += 1;
cout << arr2;
MyArray arr3, arr4;
arr3 = arr2 + arr1;
cout << arr3;
arr4 = arr2 - arr1;
cout << arr4;
cout << arr1 * arr2 << endl;
return 0;
}