France-IOI
Accueil Remonter
 mail2.gif (4196 octets) écrivez-moi pour me faire part de vos remarques.

France-IOI Entraînement Compétition Contribution

 

Pour apprendre à programmer, je vous conseille de suivre le cours sur ce site : France-IOI.org.

bullet

Niveau 1
bullet

1 – Affichage de texte, suite d'instructions (6 problèmes)
bullet

1) Hello world ! [⇒ afficher le texte « Hello world ! »]

bullet

2) Présentation [⇒ corriger les erreurs de syntaxe d'un programme]

bullet

3) Plan de la montagne [⇒ afficher plusieurs lignes de texte]

bullet

4) Dans le fourré [⇒ déplacer le robot sur une grille avec des obstacles]

bullet

5) Empilement de cylindres [⇒ déplacer 4 disques dans les tours de Hanoï]

bullet

6) Recette secrète [⇒ résoudre une énigme de transvasement de récipients]

bullet

2 – Répétitions d'instructions (10 problèmes)
bullet

1) Punition [⇒ afficher un grand nombre de fois le même texte]

bullet

2) Mathématiques de base [⇒ corriger les erreurs de syntaxe d'un programme]

bullet

3) Transport d'eau [⇒ répéter des instructions de déplacement

bullet

4) Le secret du Goma [⇒ répéter un groupe de deux actions]

bullet

5) Sisyphe [⇒ enchaîner deux répétitions de déplacements]

bullet

6) Page d'écriture [⇒ enchaîner trois répétitions d'affichage de texte]

bullet

7) Jeu de dames [⇒ imbriquer des répétitions pour dessiner un plateau]

bullet

8) Mont Kailash [⇒ déplacer le robot avec des répétitions imbriquées]

bullet

9) Vendanges [⇒ faire faire une tâche au robot avec des répétitions imbriquées]

bullet

10) Le Grand Événement [⇒ effectuer des déplacements avec de nombreuses boucles]

bullet

3 – Calculs et découverte des variables (13 problèmes)
bullet

1) Réponds ! [⇒ afficher le nombre 42]

bullet

2) L'éclipse [⇒ calculer la soustraction de deux entiers]

bullet

3) Bonbons pour tout le monde ! [⇒ combiner des opérations mathématiques simples]

bullet

4) L'algoréathlon [⇒ stocker le résultat d'un calcul pour le réutiliser]

bullet

5) Cour de récréation [⇒ utiliser une variable dans des opérations mathématiques]

bullet

6) Une partie de cache-cache [⇒ afficher les entiers de 1 à 100]

bullet

7) Progresser par l'erreur [⇒ vérifier des programmes utilisant des variables]

bullet

8) Décollage de fusée [⇒ compter de 100 à 0]

bullet

9) Invasion de batraciens[⇒ calculer une puissance avec une boucle]

bullet

10) Kermesse [⇒ calculer les sommes intermédiaires de la somme des entiers de 1 à 50]

bullet

11) Course avec les enfants [⇒ utiliser un compteur pour le nombre d'itérations d'une boucle interne]

bullet

12) Construction d'une pyramide [⇒ sommer les cubes des entiers impairs de 1 à 17]

bullet

13) Table de multiplication [⇒ afficher une table de multiplication]

bullet

4 – Lecture de l'entrée(10 problèmes)
bullet

1) Récoltes [⇒ lire un entier et faire un calcul simple]

bullet

2) Retraite spirituelle [⇒ calculer le nombre de secondes dans N journées]

bullet

3) Âge des petits-enfants [⇒ corriger les erreurs de syntaxe d'un programme]

bullet

4) Encore des punitions [⇒ afficher un nombre variable de fois le même texte]

bullet

5) Graduation de thermomètres [⇒ afficher les entiers entre deux bornes]

bullet

6) Jeu de calcul mental [⇒ multiplier un nombre par les factorielles successives]

bullet

7) La Grande Braderie [⇒ afficher des entiers avec le point de départ et le pas donnés]

bullet

8) Bétail [⇒ calculer la somme d'entiers lus]

bullet

9) Socles pour statues [⇒ calculer la somme des carrés d'un intervalle d'entiers]

bullet

10) Le plus beau Karva [⇒ lire des valeurs dont une qui n'est pas utilisée]

bullet

5 – Tests et conditions (8 problèmes)
bullet

1) Transport des bagages [⇒ tester si le produit de deux entiers est supérieur à une valeur]

bullet

2) Bornes kilométriques [⇒ calculer une valeur absolue]

bullet

3) Tarifs dégressifs [⇒ seuiller une fonction affine avec un test]

bullet

4) Bagarre générale [⇒ comparer deux valeurs]

bullet

5) Tarif du bateau [⇒ déterminer un tarif en fonction de l'âge avec un si/sinon]

bullet

6) Traversée du pont [⇒ calculer un tarif avec un si/sinon]

bullet

7) Concours de tir à la corde [⇒ comparer deux sommes d'entiers]

bullet

8) Mot de passe du village [⇒ tester si un entier lu est égal à une certaine valeur]

bullet

6 – Structures avancées (8 problèmes)
bullet

1) Villes et villages [⇒ compter le nombre de valeurs supérieures à un seuil]

bullet

2) Planning de la journée [⇒ compter le nombre de valeurs à moins d'un seuil d'une autre valeur]

bullet

3) Étape la plus longue [⇒ calculer le maximum d'un ensemble de valeurs]

bullet

4) Calcul des dénivelées [⇒ sommer séparément les valeurs positives et négatives]

bullet

5) Type d'arbres [⇒ doubles tests imbriqués]

bullet

6) Tarifs de l'auberge [⇒ calculer un tarif avec des tests imbriqués]

bullet

7) Protection du village [⇒ calculer le minimum et le maximum sur chaque dimension des coordonnées lues]

bullet

8) Le juste prix [⇒ calculer la position du minimum]

bullet

7 – Conditions avancées, opérateurs booléens (10 problèmes)
bullet

1) Espion étranger [⇒ calculer le nombre de valeurs tombant dans un intervalle]

bullet

2) Maison de l'espion [⇒ calculer le nombre de valeurs tombant dans un rectangle]

bullet

3) Nombre de jours dans le mois [⇒ bien combiner plusieurs tests pour avoir un programme court]

bullet

4) Amitié entre gardes [⇒ déterminer si des intervalles 1D s'intersectent]

bullet

5) Nombre de personnes à la fête [⇒ calculer la valeur maximale atteinte d'un compteur augmentant et diminuant]

bullet

6) Casernes de pompiers [⇒ déterminer si des rectangles à bords droits s'intersectent]

bullet

7) Personne disparue [⇒ déterminer si une valeur est présente dans une liste]

bullet

8) La grande fête [⇒ calculer le nombre d'intervalles intersectant un intervalle de référence]

bullet

9) L'espion est démasqué ! [⇒ tester le nombre de critères vérifiés par les données lues]

bullet

10) Zones de couleurs [⇒ tester l'appartenance de points à des zones du plan avec des tests complexes]

bullet

8 – Répétitions conditionnées (5 problèmes)
bullet

1) Département de médecine : contrôle d'une épidémie [⇒ trouver la plus petite puissance de 3 supérieure à un seuil]

bullet

2) Administration : comptes annuels [⇒ sommer un nombre inconnu de valeurs, avec utilisation d'une sentinelle]

bullet

3) Département de pédagogie : le « c'est plus, c'est moins » [⇒ simuler le jeu du « c'est plus, c'est moins »]

bullet

4) Département d'architecture : construction d'une pyramide [⇒ calculer la plus grande somme de carrés inférieure à un seuil]

bullet

5) Département de chimie : mélange explosif [⇒ tester la raison de sortie d'une boucle while pour effectuer une action]

bullet

Niveau 2
bullet

1 – Nombres à virgules et autres outils (11 problèmes)
bullet

1) Origami [⇒ calculer une puissance de 2, multipliée par un décimal]

bullet

2) Conversions de distances [⇒ appliquer une formule de conversion sur un décimal]

bullet

3) Comparatif de prix [⇒ appliquer une formule avec une division entre décimaux]

bullet

4) Moyenne des notes [⇒ calculer une moyenne d'entiers]

bullet

A – Faire des arrondis (inférieur et supérieur)

bullet

1) Augmentation de la population [⇒ calculer une partie entière inférieure]

bullet

2) Construction de maisons [⇒ calculer une partie entière supérieure]

bullet

B – Faire des arrondis (au plus proche)

bullet

1) Soirée orageuse [⇒ calculer un arrondi au plus proche]

bullet

2) Augmentation des taxes [⇒ calculer un prix après une modification de la taxe]

bullet

C – Arithmétique de base

bullet

1) Achat de livres [⇒ effectuer une division entière]

bullet

2) Une belle récolte [⇒ tester si un nombre est le multiple d'un autre]

bullet

3) La roue de la fortune [⇒ calculer un modulo sur un nombre négatif]

bullet

2 – Découverte des tableaux (10 problèmes)
bullet

1) Préparation de l'onguent [⇒ accéder aux éléments d'un tableau déclaré en dur]

bullet

2) Liste de courses [⇒ accéder aux éléments d'un tableau déclaré en dur pour calcul d'un prix]

bullet

3) Grand inventaire [⇒ modifier un tableau pour suivre les quantités disponibles de produits]

bullet

4) Étude de marché [⇒ construire un histogramme]

bullet

5) Répartition du poids [⇒ calculer les distances signées à la moyenne]

bullet

6) Visite de la mine [⇒ stockage puis affichage inversé de valeurs]

bullet

7) Journée des cadeaux [⇒ calculer une médiane après un tri]

bullet

8) Course à trois jambes [⇒ associer le minimum au maximum, etc. après un tri]

bullet

9) Banquet municipal [⇒ appliquer des inversions sur un tableau de valeurs]

bullet

10) Choix des emplacements [⇒ inverser position et valeur dans un tableau]

bullet

3 – Chaînes de caractères (14 problèmes)
bullet

A – Chaînes complètes

bullet

1) Petites fiches et gros travail [⇒ inverser deux à deux les 12 lignes d'un texte]

bullet

2) Priorité alphabétique [⇒ comparer deux mots]

bullet

3) Une ligne sur deux [⇒ afficher les lignes impaires d'un texte]

bullet

4) Résumés de livres [⇒ trouver les lignes trop courtes]

bullet

5) Lire ou ne pas lire, telle est la question [⇒ comparer la longueur de titres de livres]

bullet

B – Mots

bullet

1) Fiches d’inscription [⇒ inverser les deux mots présents sur chaque ligne]

bullet

2) Analyse de fréquence [⇒ calculer un histogramme des longueurs des mots d'un texte]

bullet

C – Caractères

bullet

1) Impression d’étiquettes [⇒ afficher verticalement une ligne de texte]

bullet

2) Écriture en miroir [⇒ inverser chaque ligne d'un texte]

bullet

3) Inscription d’étudiants [⇒ affecter une lettre à des intervalles de l'alphabet]

bullet

4) ngms sns vlls [⇒ retirer les voyelles et les espaces d'un texte]

bullet

5) La bataille [⇒ comparer à la main deux chaînes de caractères]

bullet

6) Analyse d’une langue [⇒ calculer la fréquence d'apparition d'une lettre dans un texte]

bullet

7) Sans espaces [⇒ remplacer les espaces par des _]

bullet

4 – Fonctions (9 problèmes)
bullet

1) Code secret deux fois [⇒ répéter un bloc à l'aide d'une fonction]

bullet

2) Deux codes secrets [⇒ rendre une fonction flexible avec un paramètre]

bullet

3) Dentelle [⇒ afficher une ligne avec une fonction à deux arguments]

bullet

4) Motif rectangulaire [⇒ afficher un rectangle avec une fonction à trois arguments]

bullet

5) Le plus petit de deux entiers [⇒ réécrire la fonction min]

bullet

6) Phénomène numérique [⇒ calculer le terme suivant dans la suite de Syracuse]

bullet

7) Distance euclidienne [⇒ calculer la distance euclidienne avec une fonction]

bullet

8) Formes creuses [⇒ dessiner des formes avec quatre fonctions]

bullet

9) Convertisseur d'unités [⇒ convertir d'une unité vers l'autre avec des constantes et une fonction]

bullet

5 – Programmer sur son ordinateur
bullet

A – Programmer sous Windows

bulletL'éditeur de texte Notepad++ : Installation
bulletPython : Installation
bulletC et C++ : Installation de MinGW
bulletOCaml : Installation
bulletInstallation avancée : PATH, shell de commandes, ocamlopt
bulletB – Programmer sous GNU/Linux
bulletInstallation d'Ubuntu
bulletConfigurer un système existant
bulletCommandes de base
bulletUn premier programme
bulletUn programme avec des tests
bulletCommandes et techniques utiles
bulletLangages interprétés et langages compilés
bulletCommandes avancées
bulletChoix d'un éditeur

bullet

Niveau 3
bullet

Déblocage du niveau 3 (5 problèmes)
bullet

1) Emprunts de livres [⇒ gérer les livres empruntables à la bibliothèque]

bullet

2) Fléchettes [⇒ afficher une suite de carrés imbriqués constitués de lettres]

bullet

3) Composition musicale [⇒ effacer itérativement les lettres consécutives identiques]

bullet

4) Lissage de signal [⇒ lisser un signal jusqu'à ce qu'un certain critère soit vérifié]

bullet

5) Course de grenouilles [⇒ simuler une course et déterminer le gagnant]

bullet

1 – Syntaxes, notions et astuces des langages
bullet

Lecture/écriture rapide

bullet

Utiliser une fonction main

bullet

Modification raccourcie

bullet

Opérations vectorielles

bullet

Limite du nombre de récursions

bullet

2 – Introduction à la complexité
bullet

Introduction

bullet

Efficacité d'un programme

bullet

Nombre d'opérations d'un algorithme

bullet

Complexité d'un algorithme

bullet

Complexité et temps de calcul

bullet

Notation O()

bullet

Conclusion

bullet

3 – Gestion de caractères (7 problèmes)
bullet

A – Entiers et caractères

bullet

1) Bâtiment et allée [⇒ convertir lettre vers/depuis un nombre en fonction du code ASCII]

bullet

2) Nombre d'amour [⇒ convertir un texte en suite de nombres puis appliquer un processus dessus]

bullet

B – Classe de caractères

bullet

1) Majuscules [⇒ convertir un texte en majuscule]

bullet

2) Lettre la plus fréquente [⇒ trouver la lettre la plus fréquente d'un texte]

bullet

3) Titres palindromiques [⇒ déterminer si des lignes de texte sont des palindromes]

bullet

4) Validité des noms de variables [⇒ déterminer si des noms de variables sont valides]

bullet

5) Fréquences d’apparition [⇒ calculer les fréquences d'apparition, en pourcentage, des lettres dans un texte]

bullet

4 – Opérations avancées sur les chaînes de caractères (12 problèmes)
bullet

A – Tris

bullet

1) Inversion d’une liste de livres [⇒ inverser l'ordre des lignes d'un texte]

bullet

2) Trier des livres [⇒ trier les lignes d'un texte]

bullet

3) Lire ou ne pas lire, telle est (à nouveau) la question [⇒ comparer des lignes de texte]

bullet

4) Inversion de dictionnaire [⇒ inverser et trier une suite de paires de mots]

bullet

B – Itérations

bullet

1) Fréquentation de la bibliothèque [⇒ calculer la somme d'un nombre inconnu d'entiers]

bullet

2) Conférence et tics de langage [⇒ calculer le nombre d'apparitions d'un mot dans un texte de longueur inconnue]

bullet

3) Acronymes [⇒ calculer des acronymes et formater des titres de livres]

bullet

4) Alphabet [⇒ afficher l'alphabet]

bullet

5) Consonnes [⇒ afficher les consonnes de l'alphabet]

bullet

6) Déchiffrement de la première page [⇒ décoder un texte à l'aide d'un tableau de correspondances]

bullet

7) Chiffrement par décalage [⇒ décoder un texte encodé avec une variation du code de césar, clé connue]

bullet

8) Trouver le décalage [⇒ décoder un texte encodé avec une variation du code de césar, clé à trouver]

bullet

5 – Tableaux avancés (5 problèmes)
bullet

1) Infographie [⇒ remplir des rectangles de « couleur » au sein d'une image 2D]

bullet

2) Carré magique [⇒ tester si un carré est magique]

bullet

3) Attaque du cavalier [⇒ tester facilement les déplacements du cavalier avec un tableau de directions]

bullet

4) Gomoku [⇒ chercher les alignements (3 directions) de longueur 5 dans un tableau 2D]

bullet

5) Érosion [⇒ calculer l'évolution d'un automate cellulaire (érosion) sur un tableau 2D]

bullet

6 – Tris simples (9 problèmes)
bullet

1) Déchets polluants [⇒ tri par sélection : extraire plusieurs fois le maximum d'un tableau]

bullet

2) Préparation du stock [⇒ tri par insertion : insérer des valeurs dans un tableau déjà trié]

bullet

3) Course automobile [⇒ tri à bulles : inventer des dépassements dans une course]

bullet

4) Tri des données [⇒ synthèse des algorithmes de tri lents]

bullet

5) Tri des données (bibliothèque) [⇒ trier un tableau avec la fonction du langage]

bullet

6) Identifier les bacs [⇒ trier des paires d'entiers]

bullet

7) Matières recyclables [⇒ trier un ensemble de mots]

bullet

8) Densité du plastique [⇒ chercher un élément dans un tableau par dichotomie]

bullet

9) Densité la plus proche [⇒ chercher par dichotomie dans un tableau l'élément le plus proche d'une valeur]

bullet

7 – Structures de données élémentaires et Balayages (6 problèmes)
bullet

1) État du stock [⇒ calculer des quantités restantes après des achats/ventes avec un histogramme]

bullet

2) Dates de péremption [⇒ simuler une pile]

bullet

3) Distributeur automatique [⇒ utiliser une file pour gérer un ensemble de produits]

bullet

4) Carte des cavernes [⇒ déterminer si une expression est bien parenthésée]

bullet

5) Carte de cinéma [⇒ détecter des doublons avec un tableau de booléens]

bullet

6) Hydroélectricité [⇒ déterminer la somme maximale d'un sous-intervalle de taille donnée]

bullet

8 – Récursivité (6 problèmes)
bullet

A – Fonctions récursives

bullet

1) Nombre encadré [⇒ encadrer récursivement un nombre avec des crochets]

bullet

2) 0 + 0 = la tête à Toto [⇒ effectuer récursivement des substitutions successives de texte]

bullet

3) Fractale : triangle de Sierpinski [⇒ afficher le triangle de Sierpinski avec des caractères]

bullet

4) Tours de Hanoï [⇒ résoudre les tours de Hanoï en taille N]

bullet

B – Récursif et itératif : factorielle, boucle en récursif

bullet

1) Entre deux [⇒ afficher récursivement un intervalle d'entiers]

bullet

C – Récursif et itératif : boucles imbriquées en récursif

bullet

1) Retournement de chaîne [⇒ retourner une chaîne récursivement]

bullet

9 – Efficacité temporelle (4 problèmes)
bullet

1) Collage d'affiches []

bullet

2) Plus long palindrome [⇒ trouver le plus long palindrome au sein d'un texte]

bullet

3) Les bons milieux [⇒ calculer le nombre de points 2D situés au milieu de deux autres]

bullet

4) Premier absent []

bullet

10 – Bases (8 problèmes)
bullet

1) Puissance de 2 [⇒ calculer la plus grande puissance de 2 inférieure à une valeur]

bullet

2) Affichage binaire [⇒ convertir de la base 10 vers la base 2]

bullet

3) Lecture binaire [⇒ convertir de la base 2 vers la base 10]

bullet

4) Lecture dans une base quelconque [⇒ convertir de la base N vers la base 10]

bullet

5) Écriture dans une base quelconque [⇒ convertir de la base 10 vers la base N]

bullet

6) Changement de base [⇒ convertir de la base N vers la base M (petit entier)]

bullet

7) Table de multiplication binaire [⇒ afficher une table de multiplication avec les nombres en binaire]

bullet

8) Moyenne hexadécimale [⇒ calculer une moyenne de nombres donnés en base hexadécimale]

bullet

11 – Exercices d'entraînement du niveau 3 (11 problèmes)
bullet

1) Extension du centre [⇒ fusionner deux tableaux triés]

bullet

2) Tri automatique [⇒ déterminer la taille de l'intersection de deux tableaux]

bullet

3) Cartes perforées []

bullet

4) Galerie souterraine []

bullet

5) Carrés concentriques []

bullet

6) Rallonges audio []

bullet

7) Nombres opposés []

bullet

8) Amis d’amis []

bullet

9) iPhone Nano []

bullet

10) Labyrinthe à billes []

bullet

11) Essaim de drones []

bullet

Niveau 4
bullet

Déblocage du niveau 4 (4 problèmes)
bullet

1) Installation du camping []

bullet

2) Boîtes factorielles [⇒ décomposer un nombre en base factorielle]

bullet

3) Baguenaudier [⇒ résoudre un peu de plateau]

bullet

4) Choisir son manteau []

bullet

1 – Méthodes : coder proprement et efficacement
bullet

Introduction

bullet

Écrire du pseudo-code avant de coder

bullet

Bien nommer ses variables et fonctions

bullet

Éviter les répétitions : factoriser au maximum

bullet

Bien organiser les différentes parties du code

bullet

Éviter les cas particuliers

bullet

Se limiter à un langage simple

bullet

Simplifier les structures de données

bullet

Bien présenter son code

bullet

Se fixer des conventions

bullet

Conclusion et synthèse des conseils

bullet

2 – Arbres (6 problèmes)
bullet

1) Retrouver un produit

bullet

2) Longueur des descriptions

bullet

3) Carton commun

bullet

4) Pile de cartons

bullet

5) Anti-virus

bullet

6) Fibre optique

bullet

3 – Structures de données et Balayages (13 problèmes)
bullet

1) Parc d'attraction [⇒ tableau cumulatif pour calculer des sommes sur des intervalles]

bullet

2) Bentley [⇒ calculer l'intervalle de somme maximum.]

bullet

3) Nombreux produits [⇒ utiliser un tableau de files pour gérer un ensemble de produits]

bullet

4) Émissions [⇒ nombre maximum de valeurs consécutives donc la somme est inférieure à une valeur]

bullet

5) Festival de musique [⇒ plus petit intervalle contenant toutes les valeurs demandées]

bullet

6) Peinture [⇒ trouver dans un tableau trié deux valeurs de somme donnée]

bullet

7) Fête foraine [⇒ pour chaque valeur, plus grande valeur plus petite qu'elle dans un autre tableau]

bullet

8) Maisons pour philatélistes [⇒ trouver les deux valeurs les plus proches au sein d'un tableau]

bullet

9) Temps de travail [⇒ déterminer la taille de la zone couverte par un ensemble de segments]

bullet

10) Augmenter la fréquentation [⇒ choisir la limite de durée pour maximiser la moyenne des fréquentations]

bullet

11) Affectation des salles []

bullet

12) Fermeture annuelle [⇒ plus long intervalle, cyclique, non-couvert par les intervalles donnés]

bullet

13) Couvrir des points avec un segment de longueur fixe [⇒ nombre maximum de points couvert par un intervalle de longueur donnée]

bullet

4 – Récursivité avancée (6 problèmes)
bullet

A – Énumérations

bullet

1) Changement de nom [⇒ énumérer les mots possibles de N lettres]

bullet

2) Moins de noms [⇒ énumérer les mots possibles de N lettres - une fois chacune maximum]

bullet

3) Choix des cours [⇒ énumérer les ensembles de K éléments parmi N]

bullet

B – Analyse de documents

bullet

1) Expressions parenthésées, crochetées… [⇒ valider les imbrications de () [] {} <> dans un texte]

bullet

2) Indenter son code [⇒ indenter un ensemble d'accolades]

bullet

3) Évaluer une expression parenthésée [⇒ évaluer une expression arithmétique parenthésée]

bullet

5 – Calculs géométriques (1) (7 problèmes)
bullet

A – Introduction à la géométrie

bullet

1) Superficie du terrain

bullet

2) Tour de contrôle

bullet

3) Repérage des lieux

bullet

4) Voie ferrée

bullet

5) Pistes d'atterrissage

bullet

6) Surface de parking

bullet

7) Sécurité des pistes

bullet

6 – Graphes (10 problèmes)
bullet

1) Compter les chemins vers la sortie

bullet

2) Tout le labyrinthe est-il accessible ?

bullet

3) Colorier des zones avec un maximum de couleurs

bullet

4) Chercher les zones utilisables de la forêt

bullet

5) Tourner en rond1

bullet

6) Fermeture du labyrinthe

bullet

7) Bloquer une route

bullet

8) Panneaux d'encouragements

bullet

9) Chemin le plus court

bullet

10) Baliser le labyrinthe

bullet

7 – Algorithmes semi-numériques (1) (11 problèmes)
bullet

1) Pioche avec remise [⇒ compter tirages de K cartes parmi N, avec remise, avec ordre]

bullet

2) Pioche de toutes les cartes [⇒ compter nombre d’ordonnancements de N cartes]

bullet

3) Pioche sans remise [⇒ compter tirages de K cartes parmi N, sans remise, avec ordre]

bullet

4) Nombre de paquets [⇒ compter tirages de K cartes parmi N, sans remise, sans ordre]

bullet

5) Découpage [⇒ calculer le pgcd de deux nombres]

bullet

6) Collage [⇒ calculer le ppcm de deux nombres]

bullet

7) Réussite [⇒ trouver les nombres premiers inférieurs à N avec le crible d'ératosthène]

bullet

8) Multiplications multiples [⇒ multiplier un grand nombre de grands nombres, modulo N]

bullet

9) Addition de grands nombres [⇒ sommer des très grands nombres exprimés en base B]

bullet

10) Soustraction de grands nombres [⇒ soustraire des très grands nombres exprimés en base B]

bullet

11) Nombres quasi-parfaits []

bullet

8 – Graphes implicites (1) (5 problèmes)
bullet

1) Séquences d'opérations [⇒ relier deux nombres par une suite de +-*/ par des valeurs données]

bullet

2) Stage dans les Alpes [⇒ énumérer les suites croissantes de longueur N, à valeurs dans [1, K]]

bullet

3) Grille de couleurs []

bullet

4) Plus grand rayon laser []

bullet

5) Arbres malades []

bullet

9 – Exercices d'entraînement du niveau 4 (15 problèmes)
bullet

1) Nombre d'arbustes à planter

bullet

2) Recherche du plus long chemin

bullet

3) Carton trop plein

bullet

4) Multiplications multiples [⇒ multiplier un grand nombre de grands nombres, modulo N]

bullet

5) Guides touristiques

bullet

6) Musique d'ambiance

bullet

7) Passage de cables

bullet

8) Snake

bullet

9) Carte de retrait

bullet

10) Parachutisme

bullet

11) Jackpot

bullet

12) Trominos

bullet

13) Noeuds d'articulation

bullet

14) Intervention des pompiers - I

bullet

15) Intervention des pompiers - II

bullet

Niveau 5
bullet

1 – Algorithmes gloutons (4 problèmes)
bullet

1) Fête du cinéma

bullet

2) Chaîne de production

bullet

3) Vente de téléviseurs

bullet

4) Caméras de surveillance

bullet

2 – Diviser pour régner (3 problèmes)
bullet

1) Triminos

bullet

2) Championnat de ping-pong

bullet

3) Tri fusion

bullet

3 – Arbres binaires (9 problèmes
bullet

1) Maximum sur un tableau dynamique

bullet

2) Maximum d'intervalle

bullet

3) Somme sur des intervalles d'un tableau dynamique

bullet

4) Plus grande valeur sous borne dans tableau dynamique

bullet

5) Maintenir un tableau avec décalages sur intervalles

bullet

6) Maintenir un tableau avec modifications sur intervalles

bullet

7) File à priorité

bullet

8) File à priorité II

bullet

9) File à priorité III

bullet

4 – Tris efficaces (6 problèmes)
bullet

1) Tri par tas (bibliothèque)

bullet

2) Tri par tas

bullet

3) Tri rapide

bullet

4) Tri postal

bullet

5) Tri base

bullet

6) Tri base (variante)

bullet

5 – Plus courts chemins (9 problèmes)
bullet

1) Course d'obstacles

bullet

2) Brûler de la poudre

bullet

3) Brûler de la poudre II

bullet

4) Brûler de la poudre III

bullet

5) Parcours le plus court

bullet

6) Parcours à points

bullet

7) Course d'orientation

bullet

8) Agents de sécurité

bullet

9) Travaux aux intersections

bullet

6 – Union-Find (4 problèmes)
bullet

1) Un monde plein de fusions

bullet

2) Connaître sa hiérarchie

bullet

3) Toujours plus de fusions

bullet

4) Chemins à débroussailler

bullet

7 – Algorithmes semi-numériques (2) (9 problèmes)
bullet

A – Variables à utiliser

bullet

1) Nombres de Fibonacci

bullet

2) Nombre de paquets 2

bullet

3) Facteurs de factorielle

bullet

4) Cartes colorées

bullet

5) Echanges de cartes

bullet

6) Cycles de cartes

bullet

7) Décalage de cartes

bullet

8) Nombre de paquets 3

bullet

9) Réussite 2

bullet

8 – Algorithmes dynamiques (7 problèmes)
bullet

1) Kayak I

bullet

2) Kayak II

bullet

3) Triangle

bullet

4) Vaisseau spatial 1

bullet

5) Vaisseau spatial 2

bullet

6) Vaisseau spatial 3

bullet

7) Étagères

bullet

9 – Exercices d'entraînement du niveau 5 (10 problèmes)
bullet

1) Maximum sur des intervalles

bullet

2) Maximum sur des intervalles II

bullet

3) Signaux de fumée

bullet

4) Store Art

bullet

5) Sleon

bullet

6) Nombre le plus proche dans une liste 2

bullet

7) Arrosage d'allée

bullet

8) Augias Academy

bullet

9) Banderole II

bullet

10) Bowling

bullet

Niveau 6
bullet

1 – Graphes implicites (2) (4 problèmes)

bullet

2 – Algorithmes dynamiques avancés (4 problèmes)

bullet

3 – Structures de données et balayages avancés (5 problèmes)

bullet

4 – Composantes fortement connexes (3 problèmes)

bullet

5 – Calculs géométriques (2) (11 problèmes)

bullet

6 – Flots et couplages (10 problèmes)

bullet

7 – Exercices d'entraînement du niveau 6 (5 problèmes)