/* TestPr.c */

#include <stdio.h>
void SPACES(int);

void main(void)
{
 int J,J2,JJ,K,CNT,CNT2,Nnodes,Npairs,  DEG[100],

 A[]={16,1,1,2,3,4,4,5,5,5,6,6,6,6,8,11,11,0},
 B[]={12,2,3,4,4,8,10,3,6,11,2,3,8,11,12,8,12,0},
 A2[]={16,2,2,3,3,3,4,4,6,8,8,8,10,11,11,12,12,0},
 B2[]={12,1,6,1,5,6,2,3,5,4,6,11,4,5,6,8,11,0};

 puts("                                 DiGraph");
 puts("                         Incoming  ( )  Outgoing"); 

 J=J2=1; Nnodes=B[0]; Npairs=A[0];
 for (K=1; K<=Nnodes; K++)
  {
   CNT=0;
   while (A2[J2]<K) J2++;
   if (J2<=Npairs)
    {
     CNT2=0; JJ=J2;
     while (A2[J2]==K) {CNT2++; J2++;} SPACES(CNT2);
     J2=JJ; CNT+=CNT2;
     while (CNT2) {printf("%2d,",B2[J2]); J2++; CNT2--;}
    }

 /*  {while (A2[J2]==K) {printf("%2d,",B2[J2]); J2++; CNT++;}} */

   printf("(%d),",K);

   while ((A[J]<K) && (A[K])) J++;
   if (J<=Npairs) {while (A[J]==K) {printf("%2d,",B[J]); J++; CNT++;}}
   puts("");
   DEG[K]=CNT;
  }

 puts("\nTotal degrees for each node:");
 for (K=1; K<=Nnodes; K++) printf("(%d)%d ",K,DEG[K]); puts("\n");

 getchar();
}
      
/**********************************/

void SPACES(int H)
{
 int K;

 H = 35-3*H;
 for (K=1; K<=H; K++) putchar(' ');
}

