je suis bloqué au niveau 3, dans les exercices de déblocage, au dernier : "course de grenouille".
16 tests sur les 20 se réalisent sans problème mais les 4 restants (le 3, 4, 5 et 7) me posent problème.
Je sais qu'il s'agit d'un exercice pour débloquer le niveau 3 mais j'ai fait tous les niveaux précédents et je l'ai donc déjà débloqué. C'est simplement pour renforcer mes acquis. De plus, j'ai importé le code sur Edupython et ajouté des instructions d'affichage pour voir où seraient les problèmes mais tout se passe comme voulu.
voici le sujet et mon code :
Ce que doit faire votre programme :
nbGrenouilles numérotées de 1 à nbGrenouilles sont placées sur une ligne de départ. À chaque tour, on vous indique le numéro de la seule grenouille qui va sauter lors de ce tour, et la distance qu'elle va parcourir en direction de la ligne d'arrivée.
Écrivez un programme qui détermine laquelle des grenouilles a été strictement en tête de la course au début du plus grand nombre de tours. Notez que comme on s'intéresse à qui est en tête au début de chaque tour, le bond du dernier tour ne sert à rien car même si la grenouille concernée passe en tête, la course est finie (il est purement honorifique selon la tradition algoréenne).
Limites de temps et de mémoire (Python)
Temps : 1 s sur une machine à 1 GHz.
Mémoire : 16 000 ko.
Contraintes
1 <= nbGrenouilles <= 100
1 <= nbTours <= 1000
1 <= distanceSauti <= 100
Entrée
La première ligne de l'entrée contient un entier, le nombre de grenouilles nbGrenouilles qui participent à la course. Les grenouilles sont numérotées de 1 à nbGrenouilles.
La deuxième ligne de l'entrée contient le nombre de tours nbTours de la course.
Chacune des nbTours lignes suivantes décrit un tour par deux entiers séparés par un espace. Le premier entier est le numéro de la grenouille qui saute à ce tour, et le deuxième, est la distance parcourue par la grenouille lors de ce saut.
Sortie
Vous devez afficher un entier sur la sortie : le numéro de la grenouille qui a été strictement en tête au début du plus grand nombre de tours. En cas d'égalité entre plusieurs grenouilles, choisissez celle dont le numéro est le plus petit.
nbGrenouille = int(input())
nbTour = int(input())
restDistance = [0] * (nbGrenouille + 1)
nbTourPremier = [0] * (nbGrenouille + 1)
a = 0
indice = 1
maxx = 0
def seulPremier(a, restDistance):
for loop in range(1, len(restDistance)):
if restDistance[loop] == max(restDistance):
a = a + 1
return a
for loop in range(nbTour):
maxx = max(restDistance)
idGrenouille, distance = map(int, input().split(" "))
restDistance[idGrenouille] = restDistance[idGrenouille] + distance
if seulPremier(a, restDistance) == 1:
a = 0
while restDistance[indice] != max(restDistance):
indice = indice + 1
nbTourPremier[indice] = nbTourPremier[indice] + 1
indice = 1
while nbTourPremier[indice] != max(nbTourPremier):
indice = indice + 1
print(indice)
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Python c'est bon, mangez-en.