#include <iostream>
#include <vector>
#include <cstddef>
const std::size_t HEIGHT = 10;
const std::size_t WIDTH = 10;
typedef std::vector<std::vector<char>> Matrix;
inline void set_bit(Matrix& matrix, std::size_t x, std::size_t y)
{
matrix[(x) / 8][y] |= (0x80 >> ((x) % 8));
}
void print_screen(Matrix const& matrix)
{
std::vector<char>::size_type x, y;
for (y = 0; y < HEIGHT; y++)
{
for (x = 0; x < WIDTH/8+1; x++)
{
for (int i = 0x80; i != 0; i = (i >> 1))
{
if ((matrix[x][y] & i) != 0)
std::cout << '*';
else
std::cout << ' ';
}
}
std::cout << "\n";
}
}
int main()
{
std::vector<std::vector<char>> matrix (HEIGHT, std::vector<char>(WIDTH));
std::vector<char>::size_type x, y;
for (x = 0; x < WIDTH; x++)
{
for (y = 0; y < HEIGHT; y++)
{
if (x == 0 || y == 0 || x == WIDTH-1 || y == HEIGHT-1)
{
set_bit(matrix, x, y);
}
}
}
print_screen(matrix);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8Y3N0ZGRlZj4KCmNvbnN0IHN0ZDo6c2l6ZV90IEhFSUdIVCA9IDEwOwpjb25zdCBzdGQ6OnNpemVfdCBXSURUSCA9IDEwOwoKdHlwZWRlZiBzdGQ6OnZlY3RvcjxzdGQ6OnZlY3RvcjxjaGFyPj4gTWF0cml4OwoKaW5saW5lIHZvaWQgc2V0X2JpdChNYXRyaXgmIG1hdHJpeCwgc3RkOjpzaXplX3QgeCwgc3RkOjpzaXplX3QgeSkKewogICAgbWF0cml4Wyh4KSAvIDhdW3ldIHw9ICgweDgwID4+ICgoeCkgJSA4KSk7Cn0KCnZvaWQgcHJpbnRfc2NyZWVuKE1hdHJpeCBjb25zdCYgbWF0cml4KQp7CiAgICBzdGQ6OnZlY3RvcjxjaGFyPjo6c2l6ZV90eXBlIHgsIHk7CgogICAgZm9yICh5ID0gMDsgeSA8IEhFSUdIVDsgeSsrKQogICAgewogICAgICAgIGZvciAoeCA9IDA7IHggPCBXSURUSC84KzE7IHgrKykKICAgICAgICB7CiAgICAgICAgICAgIGZvciAoaW50IGkgPSAweDgwOyBpICE9IDA7IGkgPSAoaSA+PiAxKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKChtYXRyaXhbeF1beV0gJiBpKSAhPSAwKQogICAgICAgICAgICAgICAgICAgIHN0ZDo6Y291dCA8PCAnKic7CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgc3RkOjpjb3V0IDw8ICcgJzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAgICAgc3RkOjpjb3V0IDw8ICJcbiI7CiAgICB9Cn0KCmludCBtYWluKCkKewogICAgc3RkOjp2ZWN0b3I8c3RkOjp2ZWN0b3I8Y2hhcj4+IG1hdHJpeCAoSEVJR0hULCBzdGQ6OnZlY3RvcjxjaGFyPihXSURUSCkpOwoKICAgIHN0ZDo6dmVjdG9yPGNoYXI+OjpzaXplX3R5cGUgeCwgeTsKCiAgICBmb3IgKHggPSAwOyB4IDwgV0lEVEg7IHgrKykKICAgIHsKICAgICAgICBmb3IgKHkgPSAwOyB5IDwgSEVJR0hUOyB5KyspCiAgICAgICAgewogICAgICAgICAgICBpZiAoeCA9PSAwIHx8IHkgPT0gMCB8fCB4ID09IFdJRFRILTEgfHwgeSA9PSBIRUlHSFQtMSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgc2V0X2JpdChtYXRyaXgsIHgsIHkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHByaW50X3NjcmVlbihtYXRyaXgpOwp9