/* TESTMAKEPATH.c */
/* Make simple paths covering all components */

#include <stdio.h>
#include "subMAKEPATH.c"
#define NN 1000
int MAKEPATH(int*,int*);

void main(void)
{
 int I,K,N,CNT, *P,         PATH[NN],
/*  FA[]={0, -1,3,5,  -2,6,7,  -3,1,  -4,5,8,9,13,  -5,1,4,20,  -6,2,11,17,
       -7,2,12,17, -8,4,  -9,4,14,  -10,23,24,30,  -11,6,22,  -12,7,18,
       -13,4,  -14,9,19,  -15,16,  -16,15,21,22,  -17,6,7,  -18,12,
       -19,14,  -20,5,  -21,16,  -22,11,16, -23,10,  -24,10,25,29,
       -25,24,26,27,28,29,  -26,25,29,  -27,25,26,  -28,25,29,  -29,24,25,28,
       -30,10,  -31, -32, 0}; */

     SGRAPH[] = {0, -1,2,3,4,10,11,  -2,3,5,10,  -3,4,6,7,  -4,7,11,  -5,8,
        -6,7,9,
        -12,13,16,  -13,19,  -14,15,  -15,16,  -16,17,  -17,18,23,  -18,19,
        -19,20,  -20,21,  -21,22,  -22,23,
        -24,25,29,  -25,26,28,  -26,27,  -27,28,31,  -28,29,  -29,30,  -30.31,
           -32,  -33,  -34,
         0};      

 N=MAKEPATH(FA,PATH);

 printf("N=%d\n",N);
 for (K=0; K<=N; K++) printf("%d ",PATH[K]);  puts("\n");

 P=PATH; CNT=0;
 for (I=0; I<N; I++) {if (!*P) CNT++; P++;}

 P=PATH;
 for (K=1; K<=CNT; K++)
  {
   printf("Travel Covering component #%d\n",K);
   P++;
   while (*P) {printf("%d ",*P); P++;} puts("\n");
  }



 getchar();
}

