
| |
Pour apprendre à programmer, je vous conseille de suivre le cours sur ce site
:
France-IOI.org.
 |
Niveau 1
 |
1 – Affichage de texte, suite
d'instructions (6 problèmes)
 |
1) Hello world ! [⇒ afficher le texte « Hello world !
»] |
 |
2) Présentation [⇒ corriger les erreurs de syntaxe
d'un programme] |
 |
3) Plan de la montagne [⇒ afficher plusieurs lignes
de texte] |
 |
4) Dans le fourré [⇒ déplacer le robot sur une grille
avec des obstacles] |
 |
5) Empilement de cylindres [⇒ déplacer 4 disques dans
les tours de Hanoï] |
 |
6) Recette secrète [⇒ résoudre une énigme de
transvasement de récipients] |
|
 |
2 – Répétitions d'instructions
(10 problèmes)
 |
1) Punition [⇒ afficher un grand nombre de fois le
même texte] |
 |
2) Mathématiques de base [⇒ corriger les erreurs de
syntaxe d'un programme] |
 |
3) Transport d'eau [⇒ répéter des instructions de
déplacement |
 |
4) Le secret du Goma [⇒ répéter un groupe de deux
actions] |
 |
5) Sisyphe [⇒ enchaîner deux répétitions de
déplacements] |
 |
6) Page d'écriture [⇒ enchaîner trois répétitions
d'affichage de texte] |
 |
7) Jeu de dames [⇒ imbriquer des répétitions pour
dessiner un plateau] |
 |
8) Mont Kailash [⇒ déplacer le robot avec des
répétitions imbriquées] |
 |
9) Vendanges [⇒ faire faire une tâche au robot avec
des répétitions imbriquées] |
 |
10) Le Grand Événement [⇒ effectuer des déplacements
avec de nombreuses boucles] |
|
 |
3 – Calculs et découverte des
variables (13 problèmes)
 |
1) Réponds ! [⇒ afficher le nombre 42] |
 |
2) L'éclipse [⇒ calculer la soustraction de deux
entiers] |
 |
3) Bonbons pour tout le monde ! [⇒ combiner des
opérations mathématiques simples] |
 |
4) L'algoréathlon [⇒ stocker le résultat d'un calcul
pour le réutiliser] |
 |
5) Cour de récréation [⇒ utiliser une variable dans
des opérations mathématiques] |
 |
6) Une partie de cache-cache [⇒ afficher les entiers
de 1 à 100] |
 |
7) Progresser par l'erreur [⇒ vérifier des programmes
utilisant des variables] |
 |
8) Décollage de fusée [⇒ compter de 100 à 0] |
 |
9) Invasion de batraciens[⇒ calculer une puissance
avec une boucle] |
 |
10) Kermesse [⇒ calculer les sommes intermédiaires de
la somme des entiers de 1 à 50] |
 |
11) Course avec les enfants [⇒ utiliser un compteur
pour le nombre d'itérations d'une boucle interne] |
 |
12) Construction d'une pyramide [⇒ sommer les cubes
des entiers impairs de 1 à 17] |
 |
13) Table de multiplication [⇒ afficher une table de
multiplication] |
|
 |
4 – Lecture de l'entrée(10
problèmes)
 |
1) Récoltes [⇒ lire un entier et faire un calcul
simple] |
 |
2) Retraite spirituelle [⇒ calculer le nombre de
secondes dans N journées] |
 |
3) Âge des petits-enfants [⇒ corriger les erreurs de
syntaxe d'un programme] |
 |
4) Encore des punitions [⇒ afficher un nombre
variable de fois le même texte] |
 |
5) Graduation de thermomètres [⇒ afficher les entiers
entre deux bornes] |
 |
6) Jeu de calcul mental [⇒ multiplier un nombre par
les factorielles successives] |
 |
7) La Grande Braderie [⇒ afficher des entiers avec le
point de départ et le pas donnés] |
 |
8) Bétail [⇒ calculer la somme d'entiers lus] |
 |
9) Socles pour statues [⇒ calculer la somme des
carrés d'un intervalle d'entiers] |
 |
10) Le plus beau Karva [⇒ lire des valeurs dont une
qui n'est pas utilisée] |
|
 |
5 – Tests et conditions
(8 problèmes)
 |
1) Transport des bagages [⇒ tester si le produit de
deux entiers est supérieur à une valeur] |
 |
2) Bornes kilométriques [⇒ calculer une valeur
absolue] |
 |
3) Tarifs dégressifs [⇒ seuiller une fonction affine
avec un test] |
 |
4) Bagarre générale [⇒ comparer deux valeurs] |
 |
5) Tarif du bateau [⇒ déterminer un tarif en fonction
de l'âge avec un si/sinon] |
 |
6) Traversée du pont [⇒ calculer un tarif avec un
si/sinon] |
 |
7) Concours de tir à la corde [⇒ comparer deux sommes
d'entiers] |
 |
8) Mot de passe du village [⇒ tester si un entier lu
est égal à une certaine valeur] |
|
 |
6 – Structures avancées
(8 problèmes)
 |
1) Villes et villages [⇒ compter le nombre de valeurs
supérieures à un seuil] |
 |
2) Planning de la journée [⇒ compter le nombre de
valeurs à moins d'un seuil d'une autre valeur] |
 |
3) Étape la plus longue [⇒ calculer le maximum d'un
ensemble de valeurs] |
 |
4) Calcul des dénivelées [⇒ sommer séparément les
valeurs positives et négatives] |
 |
5) Type d'arbres [⇒ doubles tests imbriqués] |
 |
6) Tarifs de l'auberge [⇒ calculer un tarif avec des
tests imbriqués] |
 |
7) Protection du village [⇒ calculer le minimum et le
maximum sur chaque dimension des coordonnées lues] |
 |
8) Le juste prix [⇒ calculer la position du minimum] |
|
 |
7 – Conditions avancées, opérateurs
booléens (10 problèmes)
 |
1) Espion étranger [⇒ calculer le nombre de valeurs
tombant dans un intervalle] |
 |
2) Maison de l'espion [⇒ calculer le nombre de
valeurs tombant dans un rectangle] |
 |
3) Nombre de jours dans le mois [⇒ bien combiner
plusieurs tests pour avoir un programme court] |
 |
4) Amitié entre gardes [⇒ déterminer si des
intervalles 1D s'intersectent] |
 |
5) Nombre de personnes à la fête [⇒ calculer la
valeur maximale atteinte d'un compteur augmentant et diminuant] |
 |
6) Casernes de pompiers [⇒ déterminer si des
rectangles à bords droits s'intersectent] |
 |
7) Personne disparue [⇒ déterminer si une valeur est
présente dans une liste] |
 |
8) La grande fête [⇒ calculer le nombre d'intervalles
intersectant un intervalle de référence] |
 |
9) L'espion est démasqué ! [⇒ tester le nombre de
critères vérifiés par les données lues] |
 |
10) Zones de couleurs [⇒ tester l'appartenance de
points à des zones du plan avec des tests complexes] |
|
 |
8 – Répétitions conditionnées
(5 problèmes)
 |
1) Département de médecine : contrôle d'une épidémie
[⇒ trouver la plus petite puissance de 3 supérieure à un seuil] |
 |
2) Administration : comptes annuels [⇒ sommer un
nombre inconnu de valeurs, avec utilisation d'une sentinelle] |
 |
3) Département de pédagogie : le « c'est plus, c'est
moins » [⇒ simuler le jeu du « c'est plus, c'est moins »] |
 |
4) Département d'architecture : construction d'une
pyramide [⇒ calculer la plus grande somme de carrés inférieure à un seuil] |
 |
5) Département de chimie : mélange explosif [⇒ tester
la raison de sortie d'une boucle while pour effectuer une action] |
|
|
 |
Niveau 2
 |
1 – Nombres à virgules et autres
outils (11 problèmes)
 |
1) Origami [⇒ calculer une puissance de 2, multipliée
par un décimal] |
 |
2) Conversions de distances [⇒ appliquer une formule
de conversion sur un décimal] |
 |
3) Comparatif de prix [⇒ appliquer une formule avec
une division entre décimaux] |
 |
4) Moyenne des notes [⇒ calculer une moyenne
d'entiers] |
 |
A – Faire des arrondis (inférieur et supérieur) |
 |
1) Augmentation de la population [⇒ calculer une
partie entière inférieure] |
 |
2) Construction de maisons [⇒ calculer une partie
entière supérieure] |
 |
B – Faire des arrondis (au plus proche) |
 |
1) Soirée orageuse [⇒ calculer un arrondi au plus
proche] |
 |
2) Augmentation des taxes [⇒ calculer un prix après
une modification de la taxe] |
 |
C – Arithmétique de base |
 |
1) Achat de livres [⇒ effectuer une division entière] |
 |
2) Une belle récolte [⇒ tester si un nombre est le
multiple d'un autre] |
 |
3) La roue de la fortune [⇒ calculer un modulo sur un
nombre négatif] |
|
 |
2 – Découverte des tableaux
(10 problèmes)
 |
1) Préparation de l'onguent [⇒ accéder aux éléments
d'un tableau déclaré en dur] |
 |
2) Liste de courses [⇒ accéder aux éléments d'un
tableau déclaré en dur pour calcul d'un prix] |
 |
3) Grand inventaire [⇒ modifier un tableau pour
suivre les quantités disponibles de produits] |
 |
4) Étude de marché [⇒ construire un histogramme] |
 |
5) Répartition du poids [⇒ calculer les distances
signées à la moyenne] |
 |
6) Visite de la mine [⇒ stockage puis affichage
inversé de valeurs] |
 |
7) Journée des cadeaux [⇒ calculer une médiane après
un tri] |
 |
8) Course à trois jambes [⇒ associer le minimum au
maximum, etc. après un tri] |
 |
9) Banquet municipal [⇒ appliquer des inversions sur
un tableau de valeurs] |
 |
10) Choix des emplacements [⇒ inverser position et
valeur dans un tableau] |
|
 |
3 – Chaînes de caractères
(14 problèmes)
 |
A – Chaînes complètes |
 |
1) Petites fiches et gros travail [⇒ inverser deux à
deux les 12 lignes d'un texte] |
 |
2) Priorité alphabétique [⇒ comparer deux mots] |
 |
3) Une ligne sur deux [⇒ afficher les lignes impaires
d'un texte] |
 |
4) Résumés de livres [⇒ trouver les lignes trop
courtes] |
 |
5) Lire ou ne pas lire, telle est la question [⇒
comparer la longueur de titres de livres] |
 |
B – Mots |
 |
1) Fiches d’inscription [⇒ inverser les deux mots
présents sur chaque ligne] |
 |
2) Analyse de fréquence [⇒ calculer un histogramme
des longueurs des mots d'un texte] |
 |
C – Caractères |
 |
1) Impression d’étiquettes [⇒ afficher verticalement
une ligne de texte] |
 |
2) Écriture en miroir [⇒ inverser chaque ligne d'un
texte] |
 |
3) Inscription d’étudiants [⇒ affecter une lettre à
des intervalles de l'alphabet] |
 |
4) ngms sns vlls [⇒ retirer les voyelles et les
espaces d'un texte] |
 |
5) La bataille [⇒ comparer à la main deux chaînes de
caractères] |
 |
6) Analyse d’une langue [⇒ calculer la fréquence
d'apparition d'une lettre dans un texte] |
 |
7) Sans espaces [⇒ remplacer les espaces par des _] |
|
 |
4 – Fonctions
(9 problèmes)
 |
1) Code secret deux fois [⇒ répéter un bloc à l'aide
d'une fonction] |
 |
2) Deux codes secrets [⇒ rendre une fonction flexible
avec un paramètre] |
 |
3) Dentelle [⇒ afficher une ligne avec une fonction à
deux arguments] |
 |
4) Motif rectangulaire [⇒ afficher un rectangle avec
une fonction à trois arguments] |
 |
5) Le plus petit de deux entiers [⇒ réécrire la
fonction min] |
 |
6) Phénomène numérique [⇒ calculer le terme suivant
dans la suite de Syracuse] |
 |
7) Distance euclidienne [⇒ calculer la distance
euclidienne avec une fonction] |
 |
8) Formes creuses [⇒ dessiner des formes avec quatre
fonctions] |
 |
9) Convertisseur d'unités [⇒ convertir d'une unité
vers l'autre avec des constantes et une fonction] |
|
 |
5 – Programmer sur son ordinateur
|
|
 |
Niveau 3
 |
Déblocage du niveau 3 (5 problèmes)
 |
1) Emprunts de livres [⇒ gérer les livres empruntables
à la bibliothèque] |
 |
2) Fléchettes [⇒ afficher une suite de carrés imbriqués
constitués de lettres] |
 |
3) Composition musicale [⇒ effacer itérativement les
lettres consécutives identiques] |
 |
4) Lissage de signal [⇒ lisser un signal jusqu'à ce
qu'un certain critère soit vérifié] |
 |
5) Course de grenouilles [⇒ simuler une course et
déterminer le gagnant] |
|
 |
1 – Syntaxes, notions et astuces des langages
 |
Lecture/écriture rapide |
 |
Utiliser une fonction main |
 |
Modification raccourcie |
 |
Opérations vectorielles |
 |
Limite du nombre de récursions |
|
 |
2 – Introduction à la complexité
 |
Introduction |
 |
Efficacité d'un programme |
 |
Nombre d'opérations d'un algorithme |
 |
Complexité d'un algorithme |
 |
Complexité et temps de calcul |
 |
Notation O() |
 |
Conclusion |
|
 |
3 – Gestion de caractères (7 problèmes)
 |
A – Entiers et caractères |
 |
1) Bâtiment et allée [⇒ convertir lettre vers/depuis un
nombre en fonction du code ASCII] |
 |
2) Nombre d'amour [⇒ convertir un texte en suite de
nombres puis appliquer un processus dessus] |
 |
B – Classe de caractères |
 |
1) Majuscules [⇒ convertir un texte en majuscule] |
 |
2) Lettre la plus fréquente [⇒ trouver la lettre la
plus fréquente d'un texte] |
 |
3) Titres palindromiques [⇒ déterminer si des lignes de
texte sont des palindromes] |
 |
4) Validité des noms de variables [⇒ déterminer si des
noms de variables sont valides] |
 |
5) Fréquences d’apparition [⇒ calculer les fréquences
d'apparition, en pourcentage, des lettres dans un texte] |
|
 |
4 – Opérations avancées sur les chaînes de
caractères (12 problèmes)
 |
A – Tris |
 |
1) Inversion d’une liste de livres [⇒ inverser l'ordre
des lignes d'un texte] |
 |
2) Trier des livres [⇒ trier les lignes d'un texte] |
 |
3) Lire ou ne pas lire, telle est (à nouveau) la
question [⇒ comparer des lignes de texte] |
 |
4) Inversion de dictionnaire [⇒ inverser et trier une
suite de paires de mots] |
 |
B – Itérations |
 |
1) Fréquentation de la bibliothèque [⇒ calculer la
somme d'un nombre inconnu d'entiers] |
 |
2) Conférence et tics de langage [⇒ calculer le nombre
d'apparitions d'un mot dans un texte de longueur inconnue] |
 |
3) Acronymes [⇒ calculer des acronymes et formater des
titres de livres] |
 |
4) Alphabet [⇒ afficher l'alphabet] |
 |
5) Consonnes [⇒ afficher les consonnes de l'alphabet] |
 |
6) Déchiffrement de la première page [⇒ décoder un
texte à l'aide d'un tableau de correspondances] |
 |
7) Chiffrement par décalage [⇒ décoder un texte encodé
avec une variation du code de césar, clé connue] |
 |
8) Trouver le décalage [⇒ décoder un texte encodé avec
une variation du code de césar, clé à trouver] |
|
 |
5 – Tableaux avancés (5 problèmes)
 |
1) Infographie [⇒ remplir des rectangles de « couleur »
au sein d'une image 2D] |
 |
2) Carré magique [⇒ tester si un carré est magique] |
 |
3) Attaque du cavalier [⇒ tester facilement les
déplacements du cavalier avec un tableau de directions] |
 |
4) Gomoku [⇒ chercher les alignements (3 directions) de
longueur 5 dans un tableau 2D] |
 |
5) Érosion [⇒ calculer l'évolution d'un automate
cellulaire (érosion) sur un tableau 2D] |
|
 |
6 – Tris simples
(9 problèmes)
 |
1) Déchets polluants [⇒ tri par sélection : extraire
plusieurs fois le maximum d'un tableau] |
 |
2) Préparation du stock [⇒ tri par insertion : insérer
des valeurs dans un tableau déjà trié] |
 |
3) Course automobile [⇒ tri à bulles : inventer des
dépassements dans une course] |
 |
4) Tri des données [⇒ synthèse des algorithmes de tri
lents] |
 |
5) Tri des données (bibliothèque) [⇒ trier un tableau
avec la fonction du langage] |
 |
6) Identifier les bacs [⇒ trier des paires d'entiers] |
 |
7) Matières recyclables [⇒ trier un ensemble de mots] |
 |
8) Densité du plastique [⇒ chercher un élément dans un
tableau par dichotomie] |
 |
9) Densité la plus proche [⇒ chercher par dichotomie
dans un tableau l'élément le plus proche d'une valeur] |
|
 |
7 – Structures de données élémentaires et Balayages
(6 problèmes)
 |
1) État du stock [⇒ calculer des quantités restantes
après des achats/ventes avec un histogramme] |
 |
2) Dates de péremption [⇒ simuler une pile] |
 |
3) Distributeur automatique [⇒ utiliser une file pour
gérer un ensemble de produits] |
 |
4) Carte des cavernes [⇒ déterminer si une expression
est bien parenthésée] |
 |
5) Carte de cinéma [⇒ détecter des doublons avec un
tableau de booléens] |
 |
6) Hydroélectricité [⇒ déterminer la somme maximale
d'un sous-intervalle de taille donnée] |
|
 |
8 – Récursivité (6 problèmes)
 |
A – Fonctions récursives |
 |
1) Nombre encadré [⇒ encadrer récursivement un nombre
avec des crochets] |
 |
2) 0 + 0 = la tête à Toto [⇒ effectuer récursivement
des substitutions successives de texte] |
 |
3) Fractale : triangle de Sierpinski [⇒ afficher le
triangle de Sierpinski avec des caractères] |
 |
4) Tours de Hanoï [⇒ résoudre les tours de Hanoï en
taille N] |
 |
B – Récursif et itératif : factorielle, boucle en
récursif |
 |
1) Entre deux [⇒ afficher récursivement un intervalle
d'entiers] |
 |
C – Récursif et itératif : boucles imbriquées en
récursif |
 |
1) Retournement de chaîne [⇒ retourner une chaîne
récursivement] |
|
 |
9 – Efficacité temporelle (4 problèmes)
 |
1) Collage d'affiches [] |
 |
2) Plus long palindrome [⇒ trouver le plus long
palindrome au sein d'un texte] |
 |
3) Les bons milieux [⇒ calculer le nombre de points 2D
situés au milieu de deux autres] |
 |
4) Premier absent [] |
|
 |
10 – Bases (8 problèmes)
 |
1) Puissance de 2 [⇒ calculer la plus grande puissance
de 2 inférieure à une valeur] |
 |
2) Affichage binaire [⇒ convertir de la base 10 vers la
base 2] |
 |
3) Lecture binaire [⇒ convertir de la base 2 vers la
base 10] |
 |
4) Lecture dans une base quelconque [⇒ convertir de la
base N vers la base 10] |
 |
5) Écriture dans une base quelconque [⇒ convertir de la
base 10 vers la base N] |
 |
6) Changement de base [⇒ convertir de la base N vers la
base M (petit entier)] |
 |
7) Table de multiplication binaire [⇒ afficher une
table de multiplication avec les nombres en binaire] |
 |
8) Moyenne hexadécimale [⇒ calculer une moyenne de
nombres donnés en base hexadécimale] |
|
 |
11 – Exercices d'entraînement du niveau 3 (11
problèmes)
 |
1) Extension du centre [⇒ fusionner deux tableaux
triés] |
 |
2) Tri automatique [⇒ déterminer la taille de
l'intersection de deux tableaux] |
 |
3) Cartes perforées [] |
 |
4) Galerie souterraine [] |
 |
5) Carrés concentriques [] |
 |
6) Rallonges audio [] |
 |
7) Nombres opposés [] |
 |
8) Amis d’amis [] |
 |
9) iPhone Nano [] |
 |
10) Labyrinthe à billes [] |
 |
11) Essaim de drones [] |
|
|
 |
Niveau 4
 |
Déblocage du niveau 4 (4 problèmes)
 |
1) Installation du camping [] |
 |
2) Boîtes factorielles [⇒ décomposer un nombre en base
factorielle] |
 |
3) Baguenaudier [⇒ résoudre un peu de plateau] |
 |
4) Choisir son manteau [] |
|
 |
1 – Méthodes : coder proprement et efficacement
 |
Introduction |
 |
Écrire du pseudo-code avant de coder |
 |
Bien nommer ses variables et fonctions |
 |
Éviter les répétitions : factoriser au maximum |
 |
Bien organiser les différentes parties du code |
 |
Éviter les cas particuliers |
 |
Se limiter à un langage simple |
 |
Simplifier les structures de données |
 |
Bien présenter son code |
 |
Se fixer des conventions |
 |
Conclusion et synthèse des conseils |
|
 |
2 – Arbres
(6 problèmes)
 |
1) Retrouver un produit |
 |
2) Longueur des descriptions |
 |
3) Carton commun |
 |
4) Pile de cartons |
 |
5) Anti-virus |
 |
6) Fibre optique |
|
 |
3 – Structures de données et Balayages (13
problèmes)
 |
1) Parc d'attraction [⇒ tableau cumulatif pour calculer
des sommes sur des intervalles] |
 |
2) Bentley [⇒ calculer l'intervalle de somme maximum.] |
 |
3) Nombreux produits [⇒ utiliser un tableau de files
pour gérer un ensemble de produits] |
 |
4) Émissions [⇒ nombre maximum de valeurs consécutives
donc la somme est inférieure à une valeur] |
 |
5) Festival de musique [⇒ plus petit intervalle
contenant toutes les valeurs demandées] |
 |
6) Peinture [⇒ trouver dans un tableau trié deux
valeurs de somme donnée] |
 |
7) Fête foraine [⇒ pour chaque valeur, plus grande
valeur plus petite qu'elle dans un autre tableau] |
 |
8) Maisons pour philatélistes [⇒ trouver les deux
valeurs les plus proches au sein d'un tableau] |
 |
9) Temps de travail [⇒ déterminer la taille de la zone
couverte par un ensemble de segments] |
 |
10) Augmenter la fréquentation [⇒ choisir la limite de
durée pour maximiser la moyenne des fréquentations] |
 |
11) Affectation des salles [] |
 |
12) Fermeture annuelle [⇒ plus long intervalle,
cyclique, non-couvert par les intervalles donnés] |
 |
13) Couvrir des points avec un segment de longueur fixe
[⇒ nombre maximum de points couvert par un intervalle de longueur donnée] |
|
 |
4 – Récursivité avancée (6 problèmes)
 |
A – Énumérations |
 |
1) Changement de nom [⇒ énumérer les mots possibles de
N lettres] |
 |
2) Moins de noms [⇒ énumérer les mots possibles de N
lettres - une fois chacune maximum] |
 |
3) Choix des cours [⇒ énumérer les ensembles de K
éléments parmi N] |
 |
B – Analyse de documents |
 |
1) Expressions parenthésées, crochetées… [⇒ valider les
imbrications de () [] {} <> dans un texte] |
 |
2) Indenter son code [⇒ indenter un ensemble
d'accolades] |
 |
3) Évaluer une expression parenthésée [⇒ évaluer une
expression arithmétique parenthésée] |
|
 |
5 – Calculs géométriques (1) (7 problèmes)
 |
A – Introduction à la géométrie |
 |
1) Superficie du terrain |
 |
2) Tour de contrôle |
 |
3) Repérage des lieux |
 |
4) Voie ferrée |
 |
5) Pistes d'atterrissage |
 |
6) Surface de parking |
 |
7) Sécurité des pistes |
|
 |
6 – Graphes
(10 problèmes)
 |
1) Compter les chemins vers la sortie |
 |
2) Tout le labyrinthe est-il accessible ? |
 |
3) Colorier des zones avec un maximum de couleurs |
 |
4) Chercher les zones utilisables de la forêt |
 |
5) Tourner en rond1 |
 |
6) Fermeture du labyrinthe |
 |
7) Bloquer une route |
 |
8) Panneaux d'encouragements |
 |
9) Chemin le plus court |
 |
10) Baliser le labyrinthe |
|
 |
7 – Algorithmes semi-numériques (1) (11
problèmes)
 |
1) Pioche avec remise [⇒ compter tirages de K cartes
parmi N, avec remise, avec ordre] |
 |
2) Pioche de toutes les cartes [⇒ compter nombre
d’ordonnancements de N cartes] |
 |
3) Pioche sans remise [⇒ compter tirages de K cartes
parmi N, sans remise, avec ordre] |
 |
4) Nombre de paquets [⇒ compter tirages de K cartes
parmi N, sans remise, sans ordre] |
 |
5) Découpage [⇒ calculer le pgcd de deux nombres] |
 |
6) Collage [⇒ calculer le ppcm de deux nombres] |
 |
7) Réussite [⇒ trouver les nombres premiers inférieurs
à N avec le crible d'ératosthène] |
 |
8) Multiplications multiples [⇒ multiplier un grand
nombre de grands nombres, modulo N] |
 |
9) Addition de grands nombres [⇒ sommer des très grands
nombres exprimés en base B] |
 |
10) Soustraction de grands nombres [⇒ soustraire des
très grands nombres exprimés en base B] |
 |
11) Nombres quasi-parfaits [] |
|
 |
8 – Graphes implicites (1) (5 problèmes)
 |
1) Séquences d'opérations [⇒ relier deux nombres par
une suite de +-*/ par des valeurs données] |
 |
2) Stage dans les Alpes [⇒ énumérer les suites
croissantes de longueur N, à valeurs dans [1, K]] |
 |
3) Grille de couleurs [] |
 |
4) Plus grand rayon laser [] |
 |
5) Arbres malades [] |
|
 |
9 – Exercices d'entraînement du niveau 4 (15
problèmes)
 |
1) Nombre d'arbustes à planter |
 |
2) Recherche du plus long chemin |
 |
3) Carton trop plein |
 |
4) Multiplications multiples [⇒ multiplier un grand
nombre de grands nombres, modulo N] |
 |
5) Guides touristiques |
 |
6) Musique d'ambiance |
 |
7) Passage de cables |
 |
8) Snake |
 |
9) Carte de retrait |
 |
10) Parachutisme |
 |
11) Jackpot |
 |
12) Trominos |
 |
13) Noeuds d'articulation |
 |
14) Intervention des pompiers - I |
 |
15) Intervention des pompiers - II |
|
|
 |
Niveau 5
 |
1 – Algorithmes gloutons
(4 problèmes)
 |
1) Fête du cinéma
|
 |
2) Chaîne de production
|
 |
3) Vente de téléviseurs
|
 |
4) Caméras de surveillance
|
|
 |
2 – Diviser pour régner (3 problèmes)
 |
1) Triminos
|
 |
2) Championnat de ping-pong
|
 |
3) Tri fusion
|
|
 |
3 – Arbres binaires (9 problèmes
 |
1) Maximum sur un tableau dynamique
|
 |
2) Maximum d'intervalle
|
 |
3) Somme sur des intervalles d'un tableau dynamique
|
 |
4) Plus grande valeur sous borne dans tableau dynamique
|
 |
5) Maintenir un tableau avec décalages sur intervalles
|
 |
6) Maintenir un tableau avec modifications sur intervalles
|
 |
7) File à priorité
|
 |
8) File à priorité II
|
 |
9) File à priorité III
|
|
 |
4 – Tris efficaces
(6 problèmes)
 |
1) Tri par tas (bibliothèque)
|
 |
2) Tri par tas
|
 |
3) Tri rapide
|
 |
4) Tri postal
|
 |
5) Tri base
|
 |
6) Tri base (variante)
|
|
 |
5 – Plus courts chemins
(9 problèmes)
 |
1) Course d'obstacles
|
 |
2) Brûler de la poudre
|
 |
3) Brûler de la poudre II
|
 |
4) Brûler de la poudre III
|
 |
5) Parcours le plus court
|
 |
6) Parcours à points
|
 |
7) Course d'orientation
|
 |
8) Agents de sécurité
|
 |
9) Travaux aux intersections
|
|
 |
6 – Union-Find (4 problèmes)
 |
1) Un monde plein de fusions
|
 |
2) Connaître sa hiérarchie
|
 |
3) Toujours plus de fusions
|
 |
4) Chemins à débroussailler
|
|
 |
7 – Algorithmes semi-numériques (2) (9 problèmes)
 |
A – Variables à utiliser
|
 |
1) Nombres de Fibonacci
|
 |
2) Nombre de paquets 2
|
 |
3) Facteurs de factorielle
|
 |
4) Cartes colorées
|
 |
5) Echanges de cartes
|
 |
6) Cycles de cartes
|
 |
7) Décalage de cartes
|
 |
8) Nombre de paquets 3
|
 |
9) Réussite 2
|
|
 |
8 – Algorithmes dynamiques (7 problèmes)
 |
1) Kayak I
|
 |
2) Kayak II
|
 |
3) Triangle
|
 |
4) Vaisseau spatial 1
|
 |
5) Vaisseau spatial 2
|
 |
6) Vaisseau spatial 3
|
 |
7) Étagères
|
|
 |
9 – Exercices d'entraînement du niveau 5 (10 problèmes)
 |
1) Maximum sur des intervalles
|
 |
2) Maximum sur des intervalles II
|
 |
3) Signaux de fumée
|
 |
4) Store Art
|
 |
5) Sleon
|
 |
6) Nombre le plus proche dans une liste 2
|
 |
7) Arrosage d'allée
|
 |
8) Augias Academy
|
 |
9) Banderole II
|
 |
10) Bowling
|
|
|
 |
Niveau 6
 |
1 – Graphes implicites (2) (4 problèmes)
|
 |
2 – Algorithmes dynamiques avancés (4 problèmes)
|
 |
3 – Structures de données et balayages avancés (5 problèmes)
|
 |
4 – Composantes fortement connexes (3 problèmes)
|
 |
5 – Calculs géométriques (2) (11 problèmes)
|
 |
6 – Flots et couplages (10 problèmes)
|
 |
7 – Exercices d'entraînement du niveau 6 (5 problèmes)
|
|
|