#include <iostream>
#include <cstdlib>
#include <ctime>
void delete_array(int **arr, int width) {
for (int w = 0; w < width; ++w) {
delete[] arr[w];
}
delete[] arr;
}
int **create_array(int width, int height) {
int **array = new int *[width];
for (int w = 0; w < width; ++w) {
array[w] = new int[height];
}
return array;
}
void fill_array(int **arr, int width, int height) {
srand(time(NULL));
for (int i = 0; i < width; i++) {
for (int j = 0; j < height; j++) {
arr[i][j] = 1 + rand() % 20;
}
}
}
void print_array(int **arr, int width, int height) {
for (int w = 0; w < width; w++) {
for (int h = 0; h < height; h++) {
std::cout << arr[w][h] << ' ';
}
std::cout << '\n';
}
}
int main() {
const int width = 6;
const int height = 5;
int **arr = create_array(width, height);
fill_array(arr, width, height);
print_array(arr, width, height);
delete_array(arr, width);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGxpYj4KI2luY2x1ZGUgPGN0aW1lPgoKdm9pZCBkZWxldGVfYXJyYXkoaW50ICoqYXJyLCBpbnQgd2lkdGgpIHsKICBmb3IgKGludCB3ID0gMDsgdyA8IHdpZHRoOyArK3cpIHsKICAgIGRlbGV0ZVtdIGFyclt3XTsKICB9CiAgZGVsZXRlW10gYXJyOwp9CgppbnQgKipjcmVhdGVfYXJyYXkoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KSB7CiAgaW50ICoqYXJyYXkgPSBuZXcgaW50ICpbd2lkdGhdOwogIGZvciAoaW50IHcgPSAwOyB3IDwgd2lkdGg7ICsrdykgewogICAgYXJyYXlbd10gPSBuZXcgaW50W2hlaWdodF07CiAgfQogIHJldHVybiBhcnJheTsKfQoKdm9pZCBmaWxsX2FycmF5KGludCAqKmFyciwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KSB7CiAgc3JhbmQodGltZShOVUxMKSk7CiAgZm9yIChpbnQgaSA9IDA7IGkgPCB3aWR0aDsgaSsrKSB7CiAgICBmb3IgKGludCBqID0gMDsgaiA8IGhlaWdodDsgaisrKSB7CiAgICAgIGFycltpXVtqXSA9IDEgKyByYW5kKCkgJSAyMDsKICAgIH0KICB9Cn0KCnZvaWQgcHJpbnRfYXJyYXkoaW50ICoqYXJyLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpIHsKICBmb3IgKGludCB3ID0gMDsgdyA8IHdpZHRoOyB3KyspIHsKICAgIGZvciAoaW50IGggPSAwOyBoIDwgaGVpZ2h0OyBoKyspIHsKICAgICAgc3RkOjpjb3V0IDw8IGFyclt3XVtoXSA8PCAnICc7CiAgICB9CiAgICBzdGQ6OmNvdXQgPDwgJ1xuJzsKICB9Cn0KCmludCBtYWluKCkgewogIGNvbnN0IGludCB3aWR0aCA9IDY7CiAgY29uc3QgaW50IGhlaWdodCA9IDU7CiAgaW50ICoqYXJyID0gY3JlYXRlX2FycmF5KHdpZHRoLCBoZWlnaHQpOwogIGZpbGxfYXJyYXkoYXJyLCB3aWR0aCwgaGVpZ2h0KTsKICBwcmludF9hcnJheShhcnIsIHdpZHRoLCBoZWlnaHQpOwogIGRlbGV0ZV9hcnJheShhcnIsIHdpZHRoKTsKfQo=