#include "bellman.h"

/*****************   fonction afficher  *******
   La fonction "afficher" prend en paramètre un sommet r à partir duquel 
   une arborescence des plus courts chemins a été calculée. Elle suppose 
   que les tableaux antécédents et distance ont été correctement remplis ; 
   pour un sommet s :
   - si s n'est pas accessible depuis r, antecedent[s] vaut -1
   - si s est accessible depuis r, distance[s] indique la distance de r 
   à s et antecedent[s] indique l'avant-dernier sommet dans un plus 
   court chemin de r à s.
   Elle indique, pour chaque sommet s autre que r, le cas échéant que le 
   sommet s n'est pas accessible depuis r, et sinon un plus court chemin 
   pour aller de r à s (suite des sommets à emprunter) et la distance de 
   r à s. */
void afficherCourt(int r)
{
  int sommet;
  int s;

  printf("la date au plus tard pour la tache %d est :", r);
  for (sommet = 0; sommet < ordre; sommet++)
    {
      if (distance[sommet] == -INFINI)
	printf("");
    
	  else if (sommet != r)
	{
	  empiler(sommet);
	  s = sommet;
	  while(s != r)
	    {
	      s = antecedent[s];
	      empiler(s);
	    } 

		if (sommet == ordre-1){
			//printf("la date au plus tard pour atteindre %d est :",sommet); 
	
	  
	  while(!estVide()) printf("", depiler());
	  printf("%d\n", dureeTotaleProjet-distance[sommet]);

	 tableauDatePlusTard[r] = dureeTotaleProjet-distance[sommet];
	 //printf("%d\n", tableauDatePlusTard[r]);

		  //if(sommet==derniereTache) {
		  //dureeTotaleProjet=distance[sommet];
		//  printf("distance longue parcourue : %d\n", distance[sommet]);
		 // printf("duree totale projet est : %d", dureeTotaleProjet);
		}
	}
	}
	
  printf("\n");
}

