#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
struct Partition
{
size_t _size;
size_t _length;
vector<size_t> _parts;
void conjugate()
{
size_t space = 0;
for (size_t i = 0; i < _length; ++i)
space = max(space, _parts[i] + i);
++space;
_parts.resize(space);
reverse(begin(_parts), end(_parts));
auto it_out = begin(_parts);
auto it_in = end(_parts) - _length;
size_t prev = 0;
for (; it_in < end(_parts); ++it_in)
{
it_out = fill_n(it_out, *it_in - prev, end(_parts) - it_in);
prev = *it_in;
}
_length = it_out - begin(_parts);
_parts.resize(_length);
}
void print()
{
for (auto x: _parts)
cout << x << ' ';
cout << '\n';
}
};
int main()
{
Partition a {14, 4, {5, 4, 4, 1}};
a.print();
a.conjugate();
a.print();
}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IFBhcnRpdGlvbgp7CiAgICBzaXplX3QgX3NpemU7CiAgICBzaXplX3QgX2xlbmd0aDsKICAgIHZlY3RvcjxzaXplX3Q+IF9wYXJ0czsKCiAgICB2b2lkIGNvbmp1Z2F0ZSgpCiAgICB7CiAgICAgICAgc2l6ZV90IHNwYWNlID0gMDsKICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IF9sZW5ndGg7ICsraSkKICAgICAgICAgICAgc3BhY2UgPSBtYXgoc3BhY2UsIF9wYXJ0c1tpXSArIGkpOwogICAgICAgICsrc3BhY2U7CgogICAgICAgIF9wYXJ0cy5yZXNpemUoc3BhY2UpOwogICAgICAgIHJldmVyc2UoYmVnaW4oX3BhcnRzKSwgZW5kKF9wYXJ0cykpOwoKICAgICAgICBhdXRvIGl0X291dCA9IGJlZ2luKF9wYXJ0cyk7CiAgICAgICAgYXV0byBpdF9pbiA9IGVuZChfcGFydHMpIC0gX2xlbmd0aDsKICAgICAgICBzaXplX3QgcHJldiA9IDA7CgogICAgICAgIGZvciAoOyBpdF9pbiA8IGVuZChfcGFydHMpOyArK2l0X2luKQogICAgICAgIHsKICAgICAgICAgICAgaXRfb3V0ID0gZmlsbF9uKGl0X291dCwgKml0X2luIC0gcHJldiwgZW5kKF9wYXJ0cykgLSBpdF9pbik7CiAgICAgICAgICAgIHByZXYgPSAqaXRfaW47CiAgICAgICAgfQoKICAgICAgICBfbGVuZ3RoID0gaXRfb3V0IC0gYmVnaW4oX3BhcnRzKTsKICAgICAgICBfcGFydHMucmVzaXplKF9sZW5ndGgpOwogICAgfQoKICAgIHZvaWQgcHJpbnQoKQogICAgewogICAgICAgIGZvciAoYXV0byB4OiBfcGFydHMpCiAgICAgICAgICAgIGNvdXQgPDwgeCA8PCAnICc7CgogICAgICAgIGNvdXQgPDwgJ1xuJzsKICAgIH0KfTsKCmludCBtYWluKCkKewogICAgUGFydGl0aW9uIGEgezE0LCA0LCB7NSwgNCwgNCwgMX19OwogICAgYS5wcmludCgpOwogICAgYS5jb25qdWdhdGUoKTsKICAgIGEucHJpbnQoKTsKfQo=