Aller au contenu principal

Olympiades suisses d'informatique

Préparation​

  • Aller sur soi.ch.
  • Créer un compte.
    • Choisir le rôle de participant·e.
  • Accepter le devoir.
  • Cloner le dépôt GitHub du devoir.
  • Ouvrir le dossier cloné dans VS Code.
    • Dans Visual Studio Code, aller dans le menu Fichier > Ouvrir un dossier... et sélectionner le dossier cloné.

Tour préliminaire​

Voir les problèmes.

Addition​

Aller sur le problème Addition.

Comprendre l'énoncé.

  • Les énoncés ressemblent à un problème en mathématiques, mais il faut résoudre le problème pour toutes les entrées possibles.
  • Le but est d'écrire un programme qui lit l'entrée, effectue les calculs et affiche la sortie.

Créer un fichier addition.py dans le dossier cloné avec le contenu suivant :

addition.py
# Lire la première ligne et séparer avec les espaces.
a, b = input().split()

# Convertir les valeurs en entiers.
a = int(a)
b = int(b)

# Calculer le résultat.
output = 42

# Renvoyer le résultat.
print(output)

Modifier le programme pour qu'il calcule la somme de a et b et affiche le résultat.

Tester le programme (deux façons) :

  • Manuellement :
    • Ouvrir un terminal dans VS Code.
    • Exécuter le programme avec la commande suivante :
      python3 addition.py
    • Entrer les valeurs 10 5 et vérifier que le résultat est 15.
  • Avec un fichier d'entrée :
    • Créer un fichier input.txt avec le contenu suivant :
      10 5
    • Exécuter le programme avec la commande suivante :
      cat input.txt | python3 addition.py
      • Explication :
        • cat input.txt : affiche le contenu du fichier input.txt.
        • | : redirige la sortie de la commande précédente vers l'entrée de la commande suivante.
        • python3 addition.py : exécute le programme addition.py en utilisant l'entrée redirigée comme si on avait tapé les valeurs manuellement.
    • Rediriger la sortie vers un fichier output.txt :
      cat input.txt | python3 addition.py > output.txt

Soumettre sa solution sur soi.ch.

  • Télécharger le fichier d'entrée.
  • Copier le contenu du fichier téléchargé (addition-sub1-attempt0.txt) dans le fichier input.txt du dossier cloné.
  • Exécuter le programme avec le fichier d'entrée pour le mettre dans un fichier de sortie.
    cat input.txt | python3 addition.py > output.txt
  • Envoyer le fichier de sortie output.txt et le code source addition.py sur le site.

Une fois résolu, faire un commit et un push pour sauvegarder le code sur GitHub.

Books​

Aller sur le problème Books.

Créer un fichier books.py avec le contenu suivant :

books.py
# Lire les lignes d'entrée.
n = input()
books = input().split()

# Convertir les valeurs en entiers.
n = int(n)
books = [int(book) for book in books]

# Calculer le résultat.
output = 42

# Renvoyer le résultat.
print(output)

Une fois résolu, faire un commit et un push pour sauvegarder le code sur GitHub.

Fête du Fromage​

Aller sur le problème Fête du Fromage.

Créer un fichier cheeseparty.py en s'inspirant des problèmes précédents.

Aide

Bien lire l'énoncé et résoudre l'exemple à la main pour comprendre le problème.

Une fois résolu, faire un commit et un push pour sauvegarder le code sur GitHub.

Directions​

Aller sur le problème Directions.

Créer un fichier directions.py en s'inspirant des problèmes précédents.

Aide pour la structure du fichier
directions.py
# Nombre de cas de test.
T = int(input())

for t in range(T):
# Lire les lignes d'entrée.
B = input()
S = input()

# Calculer le résultat.
output = 42

# Renvoyer le résultat.
print(f"Case {t}: {output}")

Une fois résolu, faire un commit et un push pour sauvegarder le code sur GitHub.

Endurance​

Aller sur le problème Endurance.

Créer un fichier endurance.py en s'inspirant des problèmes précédents.

Une fois résolu, faire un commit et un push pour sauvegarder le code sur GitHub.

Premier Tour​

Références​