Partage
  • Partager sur Facebook
  • Partager sur Twitter

Course à trois jambes - Python

Découverte des tableaux

Sujet résolu
    20 août 2019 à 15:49:48

    Bonjour,

    Je bloque sur l'exécution complète de cet exercice pour lequel mon code fonctionne (via IDE Python) mais est trop lent à exécuter pour passer le test sur France IOI (11 tests réussis sur 13).

    Voici l'énoncé.

    Voici mon code

    nbParticipants=int(input())
    participant=[0]*nbParticipants
    
    for participants in range (nbParticipants):
        participant[participants]=int(input())
    
    participant.sort()
    
    for participants in range (nbParticipants//2):
        print("{} {}".format(min(participant),(max(participant))))
        participant.pop(0)
        participant.pop()

    Je n'ai pas trouvé comment décaler l'accès aux index depuis la fin de la liste via une boucle. En effet je n'arrive à afficher que le dernier (essayé méthodes -1 et max). La méthode pop n'est d'ailleurs pas idéale puisque j'efface ma liste.

    Si quelqu'un a une meilleure idée, ça m'aiderait à mieux comprendre.

    Merci beaucoup

    • Partager sur Facebook
    • Partager sur Twitter
      20 août 2019 à 15:59:39

      Salut,

      Déjà pour le nom de tes variables il est plus judicieux d'appeler la liste "participants" au pluriel et un élément de cette liste "participant" au singulier. Tu fais l'inverse et c'est un peu illogique. 

      Ensuite pour parcourir ta liste à l'envers tu peux faire quelque chose comme ça :

      participants = [1,2,3,4,5,6,7,8,9,10]
      for i in range(len(participants)):
          print(participants[i],participants[-i])

      Il faut bien sur que tu l'adapte pour qu'il commence au bon indice et qu'il s'arrête quand il faut !

      • Partager sur Facebook
      • Partager sur Twitter
        20 août 2019 à 16:20:53

        Merci pour l'aide, ça fonctionne nickel, je devais mal l'écrire car je l'avais essayé également avant. Merci aussi pour la remarque sur la logique, je prends ça en compte pour la suite.

        Bonne journée

        • Partager sur Facebook
        • Partager sur Twitter
          22 août 2019 à 14:38:24 - Message modéré pour le motif suivant : Merci d'utiliser le bouton code du forum pour insérer votre code


            23 décembre 2019 à 12:22:11

            Bonjour je ne comprends pas mon erreur. Voici mon code et le message d'erreur.
            nbparticipant = int(input()) for i in range (nbparticipant): Numero.append(int(input()) Numero.sort() for a in range (nbparticipant//2): print("{} {}".format(Numéro[a], Numéro[-1-a]))
            File "exe", line 6
                Numero.sort()
                     ^
            SyntaxError: invalid syntax
            • Partager sur Facebook
            • Partager sur Twitter
              27 février 2020 à 18:04:53

              Bonsoir,

              Le code ci-dessous s'exécute parfaitement bien sur console spyder mais pas avec FRANCE IOI voir erreur. !

              Pouvez-vous SVP m'éclairer ?

              Vous remerciant par avance

              nbParticipants=int(input())
              participants=[0]*nbParticipants
              i=0
              for i in range (nbParticipants):
                  participants[i]=int(input())
               
              participants.sort()
              
              for i in range(int(nbParticipants/2)):
                 print(participants[i],participants[-i+9])
              
              


              • Partager sur Facebook
              • Partager sur Twitter
                27 février 2020 à 21:58:54

                Ligne 10 de ton code : le 9-i ne marche que pour l'exemple donné dans france-ioi, il faut que tu utilises la variable nbParticipants.
                • Partager sur Facebook
                • Partager sur Twitter
                  28 février 2020 à 13:12:05

                  Désolé, je ne comprends pas le sens de votre remarque.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    28 février 2020 à 13:44:55

                    Tu as écrit dans ton code, ligne 10
                    participants[-i+9]

                    Pourquoi as-tu écrit le nombre 9 ? cette valeur ne marchera que pour le premier test. Pour les autres tests, ton code doit s'adapter au nombre de participants, qui est dans la variable nbParticipants.

                    -
                    Edité par PascalOrtiz 28 février 2020 à 15:41:15

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Course à trois jambes - Python

                    × 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