Cupide (Misc) - FCSC 2022

Cupide (Misc) - FCSC 2022

Fichiers du challenge Principe:
Exploiter un oubli de l'algo, ou choisir un système monérataire 'moisi'

Le challenge

Le challenge nous donne un fichier python (dispo ici), dont on doit battre l'algorithme

Comprendre

On lance, on met des print un partout et on cherche à comprendre

Le programme nous demande une valeur T (42), une liste de valeurs possibles L ([9 8 7 6 5 4 3 2 1]). L'algorithme "glouton" du python va alors trouver une liste R de valeurs parmi L de sorte que sa somme fasse T et qui est censée être la plus petite liste possible. Notre but est de trouver une liste S de même somme (égale à T) plus courte que R.

On peut considérer que l'algorithme "rend la monnaie" (d'où le titre "Cupide" sans doute): il doit nous rendre T avec des pièces de valeur L

Un bug?

En pratique, nulle part dans le code, ne figure la condition "les valeurs de S doivent être issues de L"! On peut donc choisir S = [T]

Et le flag tombe facilement: FCSC{bfa26d8861b987d439fe8d8f1004e8b8ea07a7b6f936b844e0f78f43c2dc33e9}

J'ignore si la condition "S utilise des valeurs de L" a volontairement été oubliée dans le challenge, ou s'il s'agit d'une réelle erreur des makers!
S'il s'agit d'une erreur dans la création du challenge, alors tout système T=2*X L=(1 X 2*X>Y) S=(X X) marcherait (exemple: T=6 L=(1 3 4) R=(4 1 1) S=(3 3))

Fichiers du challenge

↩ Retour à la liste des challenges

⇇ Retour à l'accueil