#include <iostream>
#include <string>
using namespace std;
// dziala na dynamicznych tablicach tylko.
template<typename T>
T* my_realloc(T* src, size_t old_size, size_t new_size) {
if(!new_size) {
return nullptr;
}
T* temp_array = new T[new_size];
for(size_t i = 0; i < old_size; ++i) {
temp_array[i] = src[i];
}
delete[] src;
return temp_array;
}
template<typename T>
void fill_array(T* array, T elem, size_t begin, size_t end) {
for(size_t i = begin; i < end; ++i) {
array[i] = elem;
}
}
template<typename T>
void display_array(T* array, size_t size, string sep = ",") {
for(size_t i = 0; i < size; ++i) {
cout << array[i] << sep;
}
}
int main() {
int* array = new int[10];
fill_array<int>(array, 10, 0, 10);
array = my_realloc<int>(array, 10, 20);
fill_array<int>(array, 20, 10, 20);
display_array<int>(array, 20);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKCi8vIGR6aWFsYSBuYSBkeW5hbWljem55Y2ggdGFibGljYWNoIHR5bGtvLgp0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpUKiBteV9yZWFsbG9jKFQqIHNyYywgc2l6ZV90IG9sZF9zaXplLCBzaXplX3QgbmV3X3NpemUpIHsKCWlmKCFuZXdfc2l6ZSkgewoJCXJldHVybiBudWxscHRyOwoJfQoJCglUKiB0ZW1wX2FycmF5ID0gbmV3IFRbbmV3X3NpemVdOwoJZm9yKHNpemVfdCBpID0gMDsgaSA8IG9sZF9zaXplOyArK2kpIHsKCQl0ZW1wX2FycmF5W2ldID0gc3JjW2ldOwoJfQoJCglkZWxldGVbXSBzcmM7CglyZXR1cm4gdGVtcF9hcnJheTsKfQoKdGVtcGxhdGU8dHlwZW5hbWUgVD4Kdm9pZCBmaWxsX2FycmF5KFQqIGFycmF5LCBUIGVsZW0sIHNpemVfdCBiZWdpbiwgc2l6ZV90IGVuZCkgewoJZm9yKHNpemVfdCBpID0gYmVnaW47IGkgPCBlbmQ7ICsraSkgewoJCWFycmF5W2ldID0gZWxlbTsKCX0KfQoKdGVtcGxhdGU8dHlwZW5hbWUgVD4Kdm9pZCBkaXNwbGF5X2FycmF5KFQqIGFycmF5LCBzaXplX3Qgc2l6ZSwgc3RyaW5nIHNlcCA9ICIsIikgewoJZm9yKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgewoJCWNvdXQgPDwgYXJyYXlbaV0gPDwgc2VwOwoJfQp9CgppbnQgbWFpbigpIHsKCWludCogYXJyYXkgPSBuZXcgaW50WzEwXTsKCWZpbGxfYXJyYXk8aW50PihhcnJheSwgMTAsIDAsIDEwKTsKCWFycmF5ID0gbXlfcmVhbGxvYzxpbnQ+KGFycmF5LCAxMCwgMjApOwoJZmlsbF9hcnJheTxpbnQ+KGFycmF5LCAyMCwgMTAsIDIwKTsKCWRpc3BsYXlfYXJyYXk8aW50PihhcnJheSwgMjApOwoJcmV0dXJuIDA7Cn0=
10,10,10,10,10,10,10,10,10,10,20,20,20,20,20,20,20,20,20,20,