Partage
  • Partager sur Facebook
  • Partager sur Twitter

france ioi erreur sans savoir pourquoi

    28 juin 2020 à 19:26:49

    Bonjour à tous,

    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)

    Merci par avance, bonne journée.

    Florian.

    • Partager sur Facebook
    • Partager sur Twitter
      28 juin 2020 à 21:21:28

      moi aussi 3,4,5,7

      ok, en fait le dernier tour ne compte pas, donc c'est for loop in range(nbTour-1):

      -
      Edité par josmiley 28 juin 2020 à 21:29:16

      • Partager sur Facebook
      • Partager sur Twitter

      Python c'est bon, mangez-en. 

        29 juin 2020 à 15:37:27

        Super, merci beaucoup, c'était ça :)

        Bonne journée :p

        • Partager sur Facebook
        • Partager sur Twitter

        france ioi erreur sans savoir pourquoi

        × 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.
        • Editeur
        • Markdown