# Examen 2025 --- _**201.1 Algorithmes et Structures de données**_ ![unit tests workflow](https://git.kb28.ch/HEL/AlgoDS-Examen2025/actions/workflows/tests.yaml/badge.svg) Voici mes réponses pour l'examen 2025 d'_Algorithmes et Structures de données_ ainsi que les tests unitaires fournis. ## Exercice 1
But Compter le nombre de valeurs positives différentes ayant leur opposé dans une liste
Input La liste des demi-touches (entiers relatifs non-nuls)
Output Le nombre de touches distinctes dont les valeurs positives et négatives sont dans la liste
Signature ```python def countKey( pieces: list[int] ) -> int: ```
[Source](https://git.kb28.ch/HEL/AlgoDS-Examen2025/src/branch/main/src/Ex1.py) / [Tests](https://git.kb28.ch/HEL/AlgoDS-Examen2025/src/branch/main/tests/test_ex1.py) ## Exercice 2
But Trouver le chemin le plus court entre deux points, en considérant que certaines routes ne sont praticables que de nuit/jour
Input Nœud de départ (index), nœud d'arrivée (index) et liste des routes / arêtes (nœud 1, nœud 2, restriction)
Output Liste des nœuds (index) à parcourir
Signature ```python def findSafestPath( start: int, end: int, intersections: list[tuple[int, int, int]] ) -> list[int]: ```
[Source](https://git.kb28.ch/HEL/AlgoDS-Examen2025/src/branch/main/src/Ex2.py) / [Tests](https://git.kb28.ch/HEL/AlgoDS-Examen2025/src/branch/main/tests/test_ex2.py) ## Exercice 3
But Trouver dans un réseau de console un sous-graphe connexe de taille donnée
Input Taille n du sous-graphe recherché, liste des connexions
Output Liste de n consoles toutes interconnectées
Signature ```python def findTightlyLinkedConsoles( n: int, consoles: list[tuple[int, int]] ) -> list[int]: ```
[Source](https://git.kb28.ch/HEL/AlgoDS-Examen2025/src/branch/main/src/Ex3.py) / [Tests](https://git.kb28.ch/HEL/AlgoDS-Examen2025/src/branch/main/tests/test_ex3.py) ## Exercice 4
But Compter le nombre de séquences de N coups infligeant un total de H dégâts
Input Nombre N de coups dans la séquence, nombre C de coups possibles (dégâts 1 à C inclus), total H de dégâts
Output Nombre de séquences possibles
Signature ```python def computeNbrOfDifferentSequences( N: int, C: int, H: int ) -> int: ```
[Source](https://git.kb28.ch/HEL/AlgoDS-Examen2025/src/branch/main/src/Ex4.py) / [Tests](https://git.kb28.ch/HEL/AlgoDS-Examen2025/src/branch/main/tests/test_ex4.py) ## Exercice 5
But Trouver les placements de pièces Minitris formant un rectangle plein
Input Largeur de la grille, longueur de la grille, liste des pièces à poser
Output Liste des positions des pièces
Signature ```python def playMinitrisFastAndWell( board_width: int, board_height: int, pieces: list[tuple[tuple[int,int], tuple[int,int]]] ) -> list[list[int, int]]: ```
[Source](https://git.kb28.ch/HEL/AlgoDS-Examen2025/src/branch/main/src/Ex5.py) / [Tests](https://git.kb28.ch/HEL/AlgoDS-Examen2025/src/branch/main/tests/test_ex5.py)