#include <cstddef>
class Array
{
public:
Array(): size(0), data(NULL) { ; }
Array(size_t s): size(s), data(new double[s]) { ; }
Array& operator=(const Array& a)
{
delete[] this->data;
this->data = new double[a.size];
for(size_t i = 0; i < a.size; ++i)
this->data[i] = a.data[i];
this->size = a.size;
return *this;
}
Array operator+(const Array& a)
{
Array tmp(this->size + a.size);
size_t i;
for(i = 0; i < this->size; ++i)
tmp.data[i] = this->data[i];
for(size_t j = 0; j < a.size; ++i, ++j)
tmp.data[i] = a.data[j];
return tmp;
}
private:
size_t size;
double* data;
};
int main()
{
Array a(5);
Array b(3);
Array c;
c = a + b;
return 0;
}
I2luY2x1ZGUgPGNzdGRkZWY+CgpjbGFzcyBBcnJheQp7CnB1YmxpYzoKICAgIEFycmF5KCk6IHNpemUoMCksIGRhdGEoTlVMTCkgeyA7IH0KICAgIEFycmF5KHNpemVfdCBzKTogc2l6ZShzKSwgZGF0YShuZXcgZG91YmxlW3NdKSB7IDsgfQogICAgQXJyYXkmIG9wZXJhdG9yPShjb25zdCBBcnJheSYgYSkKICAgIHsKICAgICAgICBkZWxldGVbXSB0aGlzLT5kYXRhOwogICAgICAgIHRoaXMtPmRhdGEgPSBuZXcgZG91YmxlW2Euc2l6ZV07CiAgICAgICAgZm9yKHNpemVfdCBpID0gMDsgaSA8IGEuc2l6ZTsgKytpKQogICAgICAgICAgICB0aGlzLT5kYXRhW2ldID0gYS5kYXRhW2ldOwogICAgICAgIHRoaXMtPnNpemUgPSBhLnNpemU7CiAgICAJcmV0dXJuICp0aGlzOwogICAgfQogICAgCiAgICBBcnJheSBvcGVyYXRvcisoY29uc3QgQXJyYXkmIGEpCiAgICB7CiAgICAgICAgQXJyYXkgdG1wKHRoaXMtPnNpemUgKyBhLnNpemUpOwogICAgICAgIHNpemVfdCBpOwogICAgICAgIGZvcihpID0gMDsgaSA8IHRoaXMtPnNpemU7ICsraSkKICAgICAgICAgICAgdG1wLmRhdGFbaV0gPSB0aGlzLT5kYXRhW2ldOwogICAgICAgIGZvcihzaXplX3QgaiA9IDA7IGogPCBhLnNpemU7ICsraSwgKytqKQogICAgICAgICAgICB0bXAuZGF0YVtpXSA9IGEuZGF0YVtqXTsKICAgICAgICAKICAgICAgICByZXR1cm4gdG1wOwogICAgfQpwcml2YXRlOgogICAgc2l6ZV90IHNpemU7CiAgICBkb3VibGUqIGRhdGE7Cn07CiAKaW50IG1haW4oKQp7CiAgICBBcnJheSBhKDUpOwogICAgQXJyYXkgYigzKTsKICAgIEFycmF5IGM7CiAgICBjID0gYSArIGI7CiAgICAKICAgIHJldHVybiAwOwp9