#include <cstdio>
#include <cstring>
#include <cstdlib>
#define MAX_N 56
#define MAX_M 56
#define draw; f[x][y]='#'; ret++;
#define move(b,a,c);for(int i=(c);i>0;i--) {x+=(a);y+=(b);draw;}
//printf("[%d,%d]\n",x,y);
#define center 3*(n-1),3*(n-1)
char f[MAX_N][MAX_M];
void INI()
{
memset( f, ' ', sizeof(f) );
}
int MAKE( int cx, int cy, int n )
{
if ( n <= 1 )
return 0;
int ret = 0;
int x = cx - 2*(n-1);
int y = cy;
move(1,-1,n-1);
move(1,0,n-1);
move(1,1,n-1);
move(0,1,2*(n-1));
move(-1,1,3*(n-1));
move(-1,-1,3*(n-1));
move(0,-1,2*(n-1));
move(1,-1,n-1);
move(1,0,n-1);
move(1,1,n-1);
ret += MAKE( cx, cy, n-1 );
return ret;
}
int ENDLINE()
{
int i, j;
for( i=0; i<MAX_N; i++ )
{
for ( j=MAX_M-2; j>=0; j-- )
{
if ( f[i][j] != ' ' )
{
f[i][j+1] = '\0';
break;
}
}
if ( j < 0 )
break;
}
return i;
}
int main()
{
//freopen( "Heart.in", "r", stdin );
//freopen( "Heart.out", "w", stdout );
int n;
while ( scanf( "%d", &n ) != EOF )
{
INI();
printf( "He needs %d candles.\n", MAKE( center, ++n ) );
for ( int i=0, end=ENDLINE(); i<end; i++ )
printf( "%s\n", f[i] );
printf( "\n" );
}
return 0;
}
#include <cstring>
#include <cstdlib>
#define MAX_N 56
#define MAX_M 56
#define draw; f[x][y]='#'; ret++;
#define move(b,a,c);for(int i=(c);i>0;i--) {x+=(a);y+=(b);draw;}
//printf("[%d,%d]\n",x,y);
#define center 3*(n-1),3*(n-1)
char f[MAX_N][MAX_M];
void INI()
{
memset( f, ' ', sizeof(f) );
}
int MAKE( int cx, int cy, int n )
{
if ( n <= 1 )
return 0;
int ret = 0;
int x = cx - 2*(n-1);
int y = cy;
move(1,-1,n-1);
move(1,0,n-1);
move(1,1,n-1);
move(0,1,2*(n-1));
move(-1,1,3*(n-1));
move(-1,-1,3*(n-1));
move(0,-1,2*(n-1));
move(1,-1,n-1);
move(1,0,n-1);
move(1,1,n-1);
ret += MAKE( cx, cy, n-1 );
return ret;
}
int ENDLINE()
{
int i, j;
for( i=0; i<MAX_N; i++ )
{
for ( j=MAX_M-2; j>=0; j-- )
{
if ( f[i][j] != ' ' )
{
f[i][j+1] = '\0';
break;
}
}
if ( j < 0 )
break;
}
return i;
}
int main()
{
//freopen( "Heart.in", "r", stdin );
//freopen( "Heart.out", "w", stdout );
int n;
while ( scanf( "%d", &n ) != EOF )
{
INI();
printf( "He needs %d candles.\n", MAKE( center, ++n ) );
for ( int i=0, end=ENDLINE(); i<end; i++ )
printf( "%s\n", f[i] );
printf( "\n" );
}
return 0;
}