美しすぎるプログラム

前に私が書いたプログラムです。
これはある問題に対する解答なんですが、ネタ狙いじゃなくて真面目に考えてこのコードに辿りつきました。
視覚的にこれ以上美しいプログラムはそうそうないんではないかと自負していますがいかがでしょう。
メイン部分はなんと11重ループです。
これが何を求めるプログラムか分かった人には・・何もあげませんがすごいです。
あるウェブサイトで出されている問題の一つなので知ってる人は知ってるかもしれないですが。


#include
#include
using namespace std;

long long dp[18][4][4][4][4][4][4][4][4][4][4];

#define FORN( n ) for ( int i##n = 0; i##n < 4; i##n ++ )

int main()
{
memset( dp, 0, sizeof( dp ) );

FORN( 0 ) FORN( 1 ) FORN( 2 ) FORN( 3 ) FORN( 4 ) FORN( 5 ) FORN( 6 ) FORN( 7 ) FORN( 8 ) FORN( 9 )
dp[0][i0][i1][i2][i3][i4][i5][i6][i7][i8][i9] = 1;

for ( int r = 1; r <= 17; r ++ )
{
FORN( 0 ) FORN( 1 ) FORN( 2 ) FORN( 3 ) FORN( 4 ) FORN( 5 ) FORN( 6 ) FORN( 7 ) FORN( 8 ) FORN( 9 )
{
if ( i0 < 3 ) dp[r][i0][i1][i2][i3][i4][i5][i6][i7][i8][i9] += dp[r-1][i0+1][i1][i2][i3][i4][i5][i6][i7][i8][i9];
if ( i1 < 3 ) dp[r][i0][i1][i2][i3][i4][i5][i6][i7][i8][i9] += dp[r-1][i0][i1+1][i2][i3][i4][i5][i6][i7][i8][i9];
if ( i2 < 3 ) dp[r][i0][i1][i2][i3][i4][i5][i6][i7][i8][i9] += dp[r-1][i0][i1][i2+1][i3][i4][i5][i6][i7][i8][i9];
if ( i3 < 3 ) dp[r][i0][i1][i2][i3][i4][i5][i6][i7][i8][i9] += dp[r-1][i0][i1][i2][i3+1][i4][i5][i6][i7][i8][i9];
if ( i4 < 3 ) dp[r][i0][i1][i2][i3][i4][i5][i6][i7][i8][i9] += dp[r-1][i0][i1][i2][i3][i4+1][i5][i6][i7][i8][i9];
if ( i5 < 3 ) dp[r][i0][i1][i2][i3][i4][i5][i6][i7][i8][i9] += dp[r-1][i0][i1][i2][i3][i4][i5+1][i6][i7][i8][i9];
if ( i6 < 3 ) dp[r][i0][i1][i2][i3][i4][i5][i6][i7][i8][i9] += dp[r-1][i0][i1][i2][i3][i4][i5][i6+1][i7][i8][i9];
if ( i7 < 3 ) dp[r][i0][i1][i2][i3][i4][i5][i6][i7][i8][i9] += dp[r-1][i0][i1][i2][i3][i4][i5][i6][i7+1][i8][i9];
if ( i8 < 3 ) dp[r][i0][i1][i2][i3][i4][i5][i6][i7][i8][i9] += dp[r-1][i0][i1][i2][i3][i4][i5][i6][i7][i8+1][i9];
if ( i9 < 3 ) dp[r][i0][i1][i2][i3][i4][i5][i6][i7][i8][i9] += dp[r-1][i0][i1][i2][i3][i4][i5][i6][i7][i8][i9+1];
}
}

long long res = 0;
res += dp[17][0][1][0][0][0][0][0][0][0][0];
res += dp[17][0][0][1][0][0][0][0][0][0][0];
res += dp[17][0][0][0][1][0][0][0][0][0][0];
res += dp[17][0][0][0][0][1][0][0][0][0][0];
res += dp[17][0][0][0][0][0][1][0][0][0][0];
res += dp[17][0][0][0][0][0][0][1][0][0][0];
res += dp[17][0][0][0][0][0][0][0][1][0][0];
res += dp[17][0][0][0][0][0][0][0][0][1][0];
res += dp[17][0][0][0][0][0][0][0][0][0][1];

cout << res << endl;

return 0;
}