#include <cstddef>
#include <array>
template< std::size_t ... >
struct index_helper {};
template< std::size_t n, std::size_t ... seq >
struct index_helper< n, seq ... >
{ typedef typename index_helper< n - 1, n, seq ... >::type type; };
template< std::size_t ... seq >
struct index_helper< 0, seq ... >
{ typedef index_helper type; };
template< std::size_t size >
constexpr std::array< char, size >
string_to_array( char const (&str)[ size ] )
{ return string_to_array( str, typename index_helper< size - 2 >::type() ); }
template< std::size_t size, std::size_t ... index >
constexpr std::array< char, size >
string_to_array( char const (&str)[ size ],
index_helper< index ... > )
{ return {{ str[ ( index + 3 ) % size ] ... }}; }
constexpr std::array< char, 14 > x = string_to_array( "hello, world!" );
#include <iostream>
int main() {
std::cout.write( x.begin(), x.size() );
}
I2luY2x1ZGUgPGNzdGRkZWY+CiNpbmNsdWRlIDxhcnJheT4KCnRlbXBsYXRlPCBzdGQ6OnNpemVfdCAuLi4gPgpzdHJ1Y3QgaW5kZXhfaGVscGVyIHt9OwoKdGVtcGxhdGU8IHN0ZDo6c2l6ZV90IG4sIHN0ZDo6c2l6ZV90IC4uLiBzZXEgPgpzdHJ1Y3QgaW5kZXhfaGVscGVyPCBuLCBzZXEgLi4uID4KICAgIHsgdHlwZWRlZiB0eXBlbmFtZSBpbmRleF9oZWxwZXI8IG4gLSAxLCBuLCBzZXEgLi4uID46OnR5cGUgdHlwZTsgfTsKCnRlbXBsYXRlPCBzdGQ6OnNpemVfdCAuLi4gc2VxID4Kc3RydWN0IGluZGV4X2hlbHBlcjwgMCwgc2VxIC4uLiA+CiAgICB7IHR5cGVkZWYgaW5kZXhfaGVscGVyIHR5cGU7IH07Cgp0ZW1wbGF0ZTwgc3RkOjpzaXplX3Qgc2l6ZSA+CmNvbnN0ZXhwciBzdGQ6OmFycmF5PCBjaGFyLCBzaXplID4Kc3RyaW5nX3RvX2FycmF5KCBjaGFyIGNvbnN0ICgmc3RyKVsgc2l6ZSBdICkKICAgIHsgcmV0dXJuIHN0cmluZ190b19hcnJheSggc3RyLCB0eXBlbmFtZSBpbmRleF9oZWxwZXI8IHNpemUgLSAyID46OnR5cGUoKSApOyB9Cgp0ZW1wbGF0ZTwgc3RkOjpzaXplX3Qgc2l6ZSwgc3RkOjpzaXplX3QgLi4uIGluZGV4ID4KY29uc3RleHByIHN0ZDo6YXJyYXk8IGNoYXIsIHNpemUgPgpzdHJpbmdfdG9fYXJyYXkoIGNoYXIgY29uc3QgKCZzdHIpWyBzaXplIF0sCiAgICAgICAgICAgICAgICAgaW5kZXhfaGVscGVyPCBpbmRleCAuLi4gPiApCiAgICB7IHJldHVybiB7eyBzdHJbICggaW5kZXggKyAzICkgJSBzaXplIF0gLi4uIH19OyB9Cgpjb25zdGV4cHIgc3RkOjphcnJheTwgY2hhciwgMTQgPiB4ID0gc3RyaW5nX3RvX2FycmF5KCAiaGVsbG8sIHdvcmxkISIgKTsKCiNpbmNsdWRlIDxpb3N0cmVhbT4KCmludCBtYWluKCkgewogICAgc3RkOjpjb3V0LndyaXRlKCB4LmJlZ2luKCksIHguc2l6ZSgpICk7Cn0=