#include <iostream>
void testf(size_t n)
{
const size_t matSize = (n+1) * n + 1;
char* mat = new char[matSize] {};
for (size_t i = 0; i < matSize - 1; ++i)
mat[i] = ' ';
mat[matSize - 1] = 0;
for (size_t i = 0; i < n; ++i) {
for (size_t j = 0; j <= i; ++j)
mat[i*(n+1)+(n-j-1)] = '^';
mat[i*(n+1) + n] = '\n';
}
std::cout << "--- start " << n << "\n";
std::cout << mat;
std::cout << "--- end\n";
}
int main()
{
testf(4);
}
CSNpbmNsdWRlIDxpb3N0cmVhbT4KCiAgICB2b2lkIHRlc3RmKHNpemVfdCBuKQogICAgewoJICAgIGNvbnN0IHNpemVfdCBtYXRTaXplID0gKG4rMSkgKiBuICsgMTsKCSAgICBjaGFyKiBtYXQgPSBuZXcgY2hhclttYXRTaXplXSB7fTsKCSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1hdFNpemUgLSAxOyArK2kpCgkgICAgICAgIG1hdFtpXSA9ICcgJzsKCSAgICBtYXRbbWF0U2l6ZSAtIDFdID0gMDsKCQoJICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbjsgKytpKSB7CgkgICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPD0gaTsgKytqKQoJICAgICAgICAgICBtYXRbaSoobisxKSsobi1qLTEpXSA9ICdeJzsKCSAgICAgICBtYXRbaSoobisxKSArIG5dID0gJ1xuJzsKCSAgICB9CgkKCQlzdGQ6OmNvdXQgPDwgIi0tLSBzdGFydCAiIDw8IG4gPDwgIlxuIjsKCSAgICBzdGQ6OmNvdXQgPDwgbWF0OwoJICAgIHN0ZDo6Y291dCA8PCAiLS0tIGVuZFxuIjsKICAgIH0KCQoJaW50IG1haW4oKQoJewoJCXRlc3RmKDQpOwoJfQo=