diff --git a/TD07/INF-TC1-td07.ipynb b/TD07/INF-TC1-td07.ipynb
index 23086cb74d72151c0a87f933d411c3f2df2b5672..dd5bcdb2174a7fdcc1c5ab9a4b38b8b4f2c41cb0 100644
--- a/TD07/INF-TC1-td07.ipynb
+++ b/TD07/INF-TC1-td07.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "markdown",
-   "id": "931d31d6",
+   "id": "7f210b68",
    "metadata": {},
    "source": [
     "NAME:"
@@ -31,13 +31,13 @@
    "source": [
     "## Objectif du TD\n",
     "\n",
-    "Dans ce TD nous allons aborder le problème de rendu de monnaie selon plusieurs méthodes algorithmiques : \n",
+    "Dans ce TD nous allons aborder le problème dit de de _rendu de monnaie_ selon plusieurs méthodes algorithmiques : \n",
     "\n",
-    "- technique dite Gloutonne\n",
+    "- technique de programmation Gloutonne\n",
     "- chemin minimal dans un arbre de recherche \n",
-    "- Programmation Dynamique (**prochain TD7bis et devoir à rendre**)\n",
+    "- Programmation Dynamique (cela fera l'objet du **prochain TD7bis et du devoir à rendre**)\n",
     "\n",
-    "Vous serez amené également à créer une structure de données de graphe et une méthode de parcours de celui-ci. \n",
+    "Vous serez amené dans ce TD (et les suivant) à créer une structure de données de graphe et une méthode de parcours de celui-ci. \n",
     "\n",
     "**Les réponses de la partie sur la programmation dynamique feront l'objet d'un autre sujet de TD et d'un rendu sous forme de rapport à rendre sur Moodle.**"
    ]
@@ -49,7 +49,7 @@
    "source": [
     "## Le problème de \"rendu de monnaie\"\n",
     "\n",
-    "Le problème de rendu de monnaie est très fréquent dans la vie de tous les jours et peut être défini comme suit : étant donné un montant, une machine capable de rendre la monnaie doit rendre ce montant au client à partir de pièces (1c à 2€) et de billets. On suppose pour simplifier qu'il n'y a que des pièces en centimes; un billet de 5€ sera représenté comme une pièce de 500 centimes. On supposera dans un premier temps qu'il existe un nombre suffisant (autant que nécessaire) de chaque pièce, mais dans un second temps nous introduirons des contraintes de disponibilité des pièces."
+    "Le problème de rendu de monnaie est très fréquent dans la vie de tous les jours et peut être défini comme suit : étant donné un montant, une machine capable de rendre la monnaie doit rendre ce montant au client à partir de pièces (1c, 2€, etc.) et de billets (10€, 50€, etc.). On suppose pour simplifier qu'il n'y a que des pièces en centimes; un billet de 5€ sera représenté comme une pièce de 500 centimes. On suppose également (dans un premier temps) qu'il existe un nombre suffisant (autant que nécessaire) de chaque pièce, mais dans un second temps nous introduirons des contraintes de disponibilité des pièces."
    ]
   },
   {
@@ -120,7 +120,6 @@
    "source": [
     "## Résolution du problème\n",
     "\n",
-    "\n",
     "L'exemple de la Table 1 est un système *canonique*, c'est à dire qu'en choisissant systématiquement les pièces de plus grande valeur (algorithme glouton) on obtient toujours la solution optimale. Il existe des systèmes pour lesquels c'est moins simple, par exemple $S=(1,7,23)$. Pour **M = 28**, en choisissant en priorité les pièces de plus grande valeur on trouvera $T=(5,0,1)$ (6 pièces), alors que la solution optimale est $T=(0,4,0)$ (4 pièces).\n",
     "\n",
     "Dans le cas général, ce problème est démontré NP-difficile, c'est-à-dire qu'on ne connaît pas d'algorithme qui puisse le résoudre en complexité polynomiale par rapport à la taille de $S$.\n",
@@ -239,15 +238,15 @@
    },
    "outputs": [],
    "source": [
-    "Rep= gloutonne(sorted([1, 7, 23]), 28)\n",
+    "Rep = gloutonne(sorted([1, 7, 23], reverse=True), 28)\n",
     "print(Rep[1], ': ', sum(Rep[1]),' pièces') if Rep[0] else print('Echec') \n",
-    "# [5, 0, 1] :  3  pièces            Un pièce de 23 et 5 pièces de 1\n",
+    "# [28, 0, 0] :  28  pièces\n",
     "\n",
-    "Rep= gloutonne(sorted([7, 23]), 5)\n",
+    "Rep = gloutonne(sorted([7, 23], reverse=True), 5)\n",
     "print(Rep[1], ': ', sum(Rep[1]),' pièces') if Rep[0] else print('Echec') \n",
     "# Echec car M < la + petite pièce\n",
     "\n",
-    "Rep= gloutonne(sorted([7, 23]), 8)\n",
+    "Rep = gloutonne(sorted([7, 23], reverse=True), 8)\n",
     "print(Rep[1], ': ', sum(Rep[1]),' pièces') if Rep[0] else print('Echec') \n",
     "# Echec car on ne peut jamais faire la monnaie avec cette S"
    ]
@@ -313,9 +312,13 @@
    },
    "outputs": [],
    "source": [
-    "Rep= gloutonne_avec_D(sorted([1,7,23]), 28, [10,10,0])\n",
+    "Rep= gloutonne_avec_D([23, 7, 1], 28, [0, 10, 10]) # On ne fait pas de tri car il faudrait trier D aussi\n",
+    "print(Rep[1], ': ', sum(Rep[1]),' pièces utilisées') if Rep[0] else print('Echec')\n",
+    "# Echec\n",
+    "\n",
+    "Rep= gloutonne_avec_D([23, 7, 1], 28, [0, 1, 21])\n",
     "print(Rep[1], ': ', sum(Rep[1]),' pièces utilisées') if Rep[0] else print('Echec')\n",
-    "# [0, 4, 0] : # On utilise 4 pièces "
+    "# [21, 1, 0] :  22  pièces utilisées"
    ]
   },
   {