#include <iostream>
#include <algorithm>
using namespace std;
// Длина строки в кодовых точках UTF-8.
// Каждая кодовая точка начинается с байта, верхние 2 бита которого — не 10.
size_t u8_cps(const string& s)
{
return count_if(s.begin(), s.end(), [](unsigned char c) { return c >> 6 != 0b10; });
}
int main() {
const size_t WIDTH = 3, HEIGHT = 4;
const char*** table = new const char**[HEIGHT];
for (size_t y = 0; y < HEIGHT; y++)
table[y] = new const char*[WIDTH];
table[0][0] = ""; table[0][1] = "--- БУХГАЛТЕРСКИЙ ОТЧЁТ ---"; table[0][2] = "";
table[1][0] = "СОТРУДНИК"; table[1][1] = "К ОПЛАТЕ"; table[1][2] = "ЗАЧИСЛЕНО";
table[2][0] = "Лупа"; table[2][1] = "45,0"; table[2][2] = "80,0";
table[3][0] = "Пупа"; table[3][1] = "80,0"; table[3][2] = "45,0";
for (size_t y = 0; y < HEIGHT; y++)
{
for (size_t x = 0; x < WIDTH; x++)
cout
<< string(max<ssize_t>(1, (y==0?10:15) - ssize_t(u8_cps(table[y][x]))), ' ')
<< table[y][x];
cout << endl;
}
for (size_t y = 0; y < HEIGHT; y++)
delete[] table[y];
delete[] table;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8g0JTQu9C40L3QsCDRgdGC0YDQvtC60Lgg0LIg0LrQvtC00L7QstGL0YUg0YLQvtGH0LrQsNGFIFVURi04LgovLyDQmtCw0LbQtNCw0Y8g0LrQvtC00L7QstCw0Y8g0YLQvtGH0LrQsCDQvdCw0YfQuNC90LDQtdGC0YHRjyDRgSDQsdCw0LnRgtCwLCDQstC10YDRhdC90LjQtSAyINCx0LjRgtCwINC60L7RgtC+0YDQvtCz0L4g4oCUINC90LUgMTAuCnNpemVfdCB1OF9jcHMoY29uc3Qgc3RyaW5nJiBzKQp7CglyZXR1cm4gY291bnRfaWYocy5iZWdpbigpLCBzLmVuZCgpLCBbXSh1bnNpZ25lZCBjaGFyIGMpIHsgcmV0dXJuIGMgPj4gNiAhPSAwYjEwOyB9KTsKfQoKaW50IG1haW4oKSB7Cgljb25zdCBzaXplX3QgV0lEVEggPSAzLCBIRUlHSFQgPSA0OwoKCWNvbnN0IGNoYXIqKiogdGFibGUgPSBuZXcgY29uc3QgY2hhcioqW0hFSUdIVF07Cglmb3IgKHNpemVfdCB5ID0gMDsgeSA8IEhFSUdIVDsgeSsrKQoJCXRhYmxlW3ldID0gbmV3IGNvbnN0IGNoYXIqW1dJRFRIXTsKCgl0YWJsZVswXVswXSA9ICIiOyAgICAgICAgICB0YWJsZVswXVsxXSA9ICItLS0g0JHQo9Cl0JPQkNCb0KLQldCg0KHQmtCY0Jkg0J7QotCn0IHQoiAtLS0iOyB0YWJsZVswXVsyXSA9ICIiOwoJdGFibGVbMV1bMF0gPSAi0KHQntCi0KDQo9CU0J3QmNCaIjsgdGFibGVbMV1bMV0gPSAi0Jog0J7Qn9Cb0JDQotCVIjsgICAgICAgICAgICAgICAgICAgIHRhYmxlWzFdWzJdID0gItCX0JDQp9CY0KHQm9CV0J3QniI7Cgl0YWJsZVsyXVswXSA9ICLQm9GD0L/QsCI7ICAgICAgdGFibGVbMl1bMV0gPSAiNDUsMCI7ICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVbMl1bMl0gPSAiODAsMCI7Cgl0YWJsZVszXVswXSA9ICLQn9GD0L/QsCI7ICAgICAgdGFibGVbM11bMV0gPSAiODAsMCI7ICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVbM11bMl0gPSAiNDUsMCI7CgoJZm9yIChzaXplX3QgeSA9IDA7IHkgPCBIRUlHSFQ7IHkrKykKCXsKCQlmb3IgKHNpemVfdCB4ID0gMDsgeCA8IFdJRFRIOyB4KyspCgkJCWNvdXQKCQkJCTw8IHN0cmluZyhtYXg8c3NpemVfdD4oMSwgKHk9PTA/MTA6MTUpIC0gc3NpemVfdCh1OF9jcHModGFibGVbeV1beF0pKSksICcgJykKCQkJCTw8IHRhYmxlW3ldW3hdOwoJCWNvdXQgPDwgZW5kbDsKCX0KCglmb3IgKHNpemVfdCB5ID0gMDsgeSA8IEhFSUdIVDsgeSsrKQoJCWRlbGV0ZVtdIHRhYmxlW3ldOwoJZGVsZXRlW10gdGFibGU7CglyZXR1cm4gMDsKfQ==