[UVA][EulerianGraph] 291 - The House Of Santa Claus
The House Of Santa Claus
The House Of Santa Claus |
In your childhood you most likely had to solve the riddle of the house of Santa Claus. Do you remember that the importance was on drawing the house in a stretch without lifting the pencil and not drawing a line twice? As a reminder it has to look like shown in Figure 1.
Figure: The House of Santa Claus
Well, a couple of years later, like now, you have to ``draw'' the house again but on the computer. As one possibility is not enough, we require all the possibilities when starting in the lower left corner. Follow the example in Figure 2 while defining your stretch.
Figure: This Sequence would give the Outputline 153125432
All the possibilities have to be listed in the outputfile by increasing order, meaning that 1234... is listed before 1235... .
Output
So, an outputfile could look like this:
12435123 13245123 ... 15123421
#include <stdio.h>
int map[5][5] = {
{0,1,1,0,1},
{1,0,1,0,1},
{1,1,0,1,1},
{0,0,1,0,1},
{1,1,1,1,0}
};
int ans[8] = {0};
void DFS(int idx, int now) {
ans[idx] = now;
if(idx == 8) {
for(int i = 0; i < 9; i++)
printf("%d", ans[i]+1);
puts("");
return ;
}
int i;
for(i = 0; i < 5; i++) {
if(map[now][i] == 1) {
map[now][i] = map[i][now] = 0;
DFS(idx+1, i);
map[now][i] = map[i][now] = 1;
}
}
}
int main() {
DFS(0, 0);
return 0;
}