#tableau des distances entre villes
tabDistance=[[0, 333, 715, 693, 1147, 764, 88, 738, 588, 592, 139, 511, 294, 336, 823, 293, 261, 855, 322, 188, 419, 554],
             [333, 0, 538, 371, 852, 440, 356, 408, 288, 301, 252, 179, 514, 304, 548, 289, 578, 557, 442, 263, 247, 500],
             [715, 538, 0, 662, 555, 456, 665, 494, 689, 714, 576, 496, 646, 839, 269, 819, 832, 361, 957, 529, 775, 249],
             [693, 371, 662, 0, 689, 266, 726, 208, 131, 145, 623, 222, 880, 506, 503, 524, 947, 448, 682, 629, 364, 753],
             [1147, 852, 555, 689, 0, 442, 1127, 496, 800, 822, 1018, 698, 1167, 1123, 329, 1123, 1329, 295, 1285, 986, 1002, 801],
             [764, 440, 456, 266, 442, 0, 767, 58, 362, 385, 654, 268, 866, 686, 245, 690, 986, 181, 854, 637, 561, 618],
             [88, 356, 665, 726, 1127, 767, 0, 747, 631, 638, 113, 528, 209, 416, 799, 373, 222, 839, 410, 142, 484, 485],
             [738, 408, 494, 208, 496, 58, 747, 0, 305, 328, 634, 231, 859, 640, 299, 646, 968, 239, 810, 622, 511, 637],
             [588, 288, 689, 131, 800, 362, 631, 305, 0, 25, 536, 198, 802, 377, 577, 396, 847, 537, 552, 551, 234, 736],
             [592, 301, 714, 145, 822, 385, 638, 328, 25, 0, 545, 221, 813, 367, 602, 389, 852, 561, 542, 563, 224, 758],
             [139, 252, 576, 623, 1018, 654, 113, 634, 536, 545, 0, 419, 269, 381, 691, 342, 334, 729, 424, 54, 418, 424],
             [511, 179, 496, 222, 698, 268, 528, 231, 198, 221, 419, 0, 665, 425, 422, 425, 751, 409, 588, 417, 314, 543],
             [294, 514, 646, 880, 1167, 866, 209, 859, 802, 813, 269, 665, 0, 624, 840, 582, 206, 899, 611, 252, 683, 415],
             [336, 304, 839, 506, 1123, 686, 416, 640, 377, 367, 381, 425, 624, 0, 840, 43, 580, 834, 176, 428, 143, 767],
             [823, 548, 269, 503, 329, 245, 799, 299, 577, 602, 691, 422, 840, 840, 0, 832, 1000, 94, 990, 657, 736, 495],
             [293, 289, 819, 524, 1123, 690, 373, 646, 396, 389, 342, 425, 582, 43, 832, 0, 538, 831, 164, 391, 168, 736],
             [261, 578, 832, 947, 1329, 986, 222, 968, 847, 852, 334, 751, 206, 580, 1000, 538, 0, 1048, 511, 350, 677, 614],
             [855, 557, 361, 448, 295, 181, 839, 239, 537, 561, 729, 409, 899, 834, 94, 831, 1048, 0, 993, 700, 719, 576],
             [322, 442, 957, 682, 1285, 854, 410, 810, 552, 542, 424, 588, 611, 176, 990, 164, 511, 993, 0, 478, 319, 844],
             [188, 263, 529, 629, 986, 637, 142, 622, 551, 563, 54, 417, 252, 428, 657, 391, 350, 700, 478, 0, 453, 371],
             [419, 247, 775, 364, 1002, 561, 484, 511, 234, 224, 418, 314, 683, 143, 736, 168, 677, 719, 319, 453, 0, 745],
             [554, 500, 249, 753, 801, 618, 485, 637, 736, 758, 424, 543, 415, 767, 495, 736, 614, 576, 844, 371, 745, 0]]
#liste des noms des villes associées à tabDistance
tabVille=['Annecy', 'Auxerre', 'Bordeaux', 'Boulogne', 'Brest', 'Caen', 'Grenoble', 'Le Havre', 'Lens', 'Lille', 'Lyon', 'Paris', 'Marseille', 'Metz', 'Nantes', 'Nancy', 'Nice', 'Rennes', 'Strasbourg', 'Saint-Etienne', 'Sedan', 'Toulouse']
#
def distanceAffiche(listA,listB,i,j):
    """
    affiche la distance entre deux villes
    :param listA type list contenant les distances sous forme de tableau 
    :param listB type list contenant le nom des villes
    :param  i,j type integer
    :CU : listA et listB de longueur identique avec i et j deux entiers inférieurs à cette longueur
    >>> distanceAffiche(tabDistance,tabVille,3,20)
    La distance entre  Boulogne  et  Sedan  est  364  km
    """
    return None
# 
def distanceEntreVille(listA,i,j):
    """
    retourne la distance entre deux villes
    :param listA type list contenant les distances sous forme de tableau 
    :param  i,j type integer
    :CU : i et j deux entiers inférieurs à la longueur de listA
    >>> distanceAffiche(tabDistance,3,20)
    364
    """
    return None
#
def indice_ville_min(i,listA,listR):
    """
    la doc
    """
    indice_min=-1
    d=10000
    for j in range(len(listA)):
        if j not in listR:
            if distanceEntreVille(listA,i,j)<d:
                indice_min=j
                d=distanceEntreVille(listA,i,j)
    return indice_min
#
def trajet(listA):
    """
    la doc
    """
    return None
#
def distance_totale(listA):
    """
    la doc
    """
    return None