#include #define N 12 char dwarves[N+1]; /* Seznam dosud nezařazených trpasliků */ unsigned long int day = 1; /* Zadá trpaslík Arnoštek */ void use(int i) /* Vytiskni a vyřaď $i$-tého trpaslíka */ { putchar(dwarves[i]); while(dwarves[i]) dwarves[i]=dwarves[i+1], i++; } void previous(int fact, int n) /* Urči $n$-tého trpaslíka od konce */ { int next_fact; if (n <= N) { next_fact = previous(fact * n, n+1); use((day % next_fact) / fact); } return fact; /* Nenápadně počítáme faktoriál */ } int main(void) { int i; for (i=0; i