#include <stdio.h>
int cards [30];

place_cards(int num)
{  int pos;
   if (num == 0 ) printcards(); else {
     for (pos=0; pos<=(29-2*num-2); pos ++) {
       if (cards[pos]==0 && cards[pos+num+1]==0 && cards[pos+2*num+2] == 0) {
           cards[pos] = num; cards[pos+num+1]=num; cards[pos+2*num+2]=num;
           place_cards(num-1);  // RECURSIVE CALL !!
           cards[pos] = 0; cards[pos+num+1]=0; cards[pos+2*num+2]=0;};};};};

printcards()
{ int i;
  for (i = 0; i<= 29; i++) printf("%d ", cards[i]); printf("\n");};

main()
{  place_cards(10);};

