#include <iostream>
#include <vector>
struct Map
{
int width;
int height;
std::vector<char> field;
Map(int width, int height, char value = ' ')
: width{ width }, height{ height }, field(height * width, value)
{
}
auto operator()(int i, int j) const -> char
{
return field[i * width + j];
}
auto operator()(int i, int j) -> char&
{
return field[i * width + j];
}
};
auto main() -> int
{
Map m{ 10, 10, '.' };
m(3, 3) = 'x';
m(5, 0) = 'x';
m(0, 5) = 'x';
for (int i = 0; i < m.height; ++i)
{
for (int j = 0; j < m.width; ++j)
std::cout << m(i, j);
std::cout << "\n";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKc3RydWN0IE1hcAp7CiAgICBpbnQgd2lkdGg7CiAgICBpbnQgaGVpZ2h0OwogICAgc3RkOjp2ZWN0b3I8Y2hhcj4gZmllbGQ7CgogICAgTWFwKGludCB3aWR0aCwgaW50IGhlaWdodCwgY2hhciB2YWx1ZSA9ICcgJykKICAgIDogd2lkdGh7IHdpZHRoIH0sIGhlaWdodHsgaGVpZ2h0IH0sIGZpZWxkKGhlaWdodCAqIHdpZHRoLCB2YWx1ZSkKICAgIHsKICAgIH0KCiAgICBhdXRvIG9wZXJhdG9yKCkoaW50IGksIGludCBqKSBjb25zdCAtPiBjaGFyCiAgICB7CiAgICAgICAgcmV0dXJuIGZpZWxkW2kgKiB3aWR0aCArIGpdOwogICAgfQoKICAgIGF1dG8gb3BlcmF0b3IoKShpbnQgaSwgaW50IGopIC0+IGNoYXImCiAgICB7CiAgICAgICAgcmV0dXJuIGZpZWxkW2kgKiB3aWR0aCArIGpdOwogICAgfQp9OwoKYXV0byBtYWluKCkgLT4gaW50CnsKICAgIE1hcCBteyAxMCwgMTAsICcuJyB9OwogICAgbSgzLCAzKSA9ICd4JzsKICAgIG0oNSwgMCkgPSAneCc7CiAgICBtKDAsIDUpID0gJ3gnOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtLmhlaWdodDsgKytpKQogICAgewogICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbS53aWR0aDsgKytqKQogICAgICAgICAgICBzdGQ6OmNvdXQgPDwgbShpLCBqKTsKICAgICAgICBzdGQ6OmNvdXQgPDwgIlxuIjsKICAgIH0KICAgIHJldHVybiAwOwp9Cg==