#include <iostream>
#include <string>
#include <thread>
bool MakeHoge(std::size_t N) {
std::size_t L = 0;
std::size_t R = 0;
std::string Kao[2]={ "(^o^)","(>_<)" };
int S = 0;
std::size_t X = 0;
int M = -1;
bool F = false;
while (true) {
if (L + R + Kao[S].size() >= N) {
for (std::size_t i = 0; i < L; i++)std::cout << ' ';
// std::this_thread::sleep_for(std::chrono::milliseconds(3000));
break;
}
if (X + L + R + Kao[S].size() == N) {
S = 1;
M = -1;
X--;
L++;
}
if (X == 0) {
if(F) S = 1;//daty
if(F) R++;
F = true;
M = 1;
}
for (std::size_t i = 0; i < L; i++)std::cout << ' ';
for (std::size_t i = 0; i < X; i++)std::cout << ' ';
std::cout << Kao[S] ;
S = 0;
X += (1 * M);
for (std::int64_t i = 0; i < static_cast<std::int64_t>(N)-(X+L+R+Kao[S].size()); i++)std::cout << ' ';
for (std::size_t i = 0; i < R; i++)std::cout << ' ';
//std::cout << '\r';
std::cout << std::endl;
// std::this_thread::sleep_for(std::chrono::milliseconds(16));//for animation wait
}
return true;
}
int main() {
MakeHoge(32);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dGhyZWFkPgoKYm9vbCBNYWtlSG9nZShzdGQ6OnNpemVfdCBOKSB7CglzdGQ6OnNpemVfdCBMID0gMDsKCXN0ZDo6c2l6ZV90IFIgPSAwOwoJc3RkOjpzdHJpbmcgS2FvWzJdPXsgIiheb14pIiwiKD5fPCkiIH07CglpbnQgUyA9IDA7CglzdGQ6OnNpemVfdCBYID0gMDsKCWludCBNID0gLTE7Cglib29sIEYgPSBmYWxzZTsKCXdoaWxlICh0cnVlKSB7CgoJCWlmIChMICsgUiArIEthb1tTXS5zaXplKCkgPj0gTikgewoJCQlmb3IgKHN0ZDo6c2l6ZV90IGkgPSAwOyBpIDwgTDsgaSsrKXN0ZDo6Y291dCA8PCAnICc7Ci8vCQkJc3RkOjp0aGlzX3RocmVhZDo6c2xlZXBfZm9yKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoMzAwMCkpOwoJCQlicmVhazsKCgkJfQoKCQlpZiAoWCArIEwgKyBSICsgS2FvW1NdLnNpemUoKSA9PSBOKSB7CgkJCVMgPSAxOwoJCQlNID0gLTE7CgkJCVgtLTsKCQkJTCsrOwoJCX0KCgkJaWYgKFggPT0gMCkgewoJCQlpZihGKSBTID0gMTsvL2RhdHkKCQkJaWYoRikgUisrOwkKCQkJRiA9IHRydWU7CgkJCU0gPSAxOwoJCQkJCgkJfQoKCQlmb3IgKHN0ZDo6c2l6ZV90IGkgPSAwOyBpIDwgTDsgaSsrKXN0ZDo6Y291dCA8PCAnICc7CgkJZm9yIChzdGQ6OnNpemVfdCBpID0gMDsgaSA8IFg7IGkrKylzdGQ6OmNvdXQgPDwgJyAnOwoJCXN0ZDo6Y291dCA8PCBLYW9bU10gOwoJCVMgPSAwOwoJCVggKz0gKDEgKiBNKTsKCQlmb3IgKHN0ZDo6aW50NjRfdCBpID0gMDsgaSA8IHN0YXRpY19jYXN0PHN0ZDo6aW50NjRfdD4oTiktKFgrTCtSK0thb1tTXS5zaXplKCkpOyBpKyspc3RkOjpjb3V0IDw8ICcgJzsKCQlmb3IgKHN0ZDo6c2l6ZV90IGkgPSAwOyBpIDwgUjsgaSsrKXN0ZDo6Y291dCA8PCAnICc7CgkJLy9zdGQ6OmNvdXQgPDwgJ1xyJzsKCQlzdGQ6OmNvdXQgPDwgc3RkOjplbmRsOwoJCgkvLwlzdGQ6OnRoaXNfdGhyZWFkOjpzbGVlcF9mb3Ioc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcygxNikpOy8vZm9yIGFuaW1hdGlvbiB3YWl0Cgl9CglyZXR1cm4gdHJ1ZTsKfQoKaW50IG1haW4oKSB7CglNYWtlSG9nZSgzMik7CgoJcmV0dXJuIDA7Cn0=