Visual illustration of the code challenge: +3 Days ! #6 La preuve

+3 Days ! #6 La preuve

Il est temps de vérifier les hypothèses !

Coding in the sandbox You must be logged in to access the sandbox.

Mission

Ce challenge est issu de l’histoire originale Naya +3 days !

Au fil de son enquête, Naya a identifié des frictions dominantes, repéré des zones sensibles, mis en évidence des motifs récurrents, puis imaginé plusieurs micro-optimisations capables de rendre la mobilité plus fluide. Mais il lui reste une dernière étape : vérifier que tout ce qu’elle a compris tient vraiment quand on l’applique à l’échelle du système.

Pour cela, Naya décide de mettre ses conclusions à l’épreuve directement dans MobilityOS. Elle transforme ce qu’elle a compris au fil de son enquête en chaînes d’optimisation que le système peut exécuter et tester. Cette fois, il ne s’agit plus seulement d’analyser la ville, mais de vérifier si ses hypothèses tiennent vraiment une fois appliquées.

Ce qu’elle cherche désormais, ce n’est plus seulement un bon résultat local. Elle veut voir si les optimisations qu’elle a imaginées, une fois enchaînées et interprétées par MobilityOS, produisent réellement un effet mesurable à l’échelle d’une semaine, puis d’une année entière. C’est le moment de vérité : celui où ses intuitions deviennent, ou non, une preuve.

Règles

Pour chaque scénario à tester, tu disposes d’un tableau starting qui définit le gain de base en secondes associé à chaque type de friction, et d’un tableau chains qui contient des séquences d’optimisations à interpréter.

Dans le tableau starting, chaque élément a le format suivant :

(type de friction):(gain de base en secondes)

Dans le tableau chains, chaque élément est une séquence d’étapes séparées par ->. Chaque étape a le format suivant :

(type de friction)(modificateur)(valeur)

Les modificateurs possibles sont * (multiplication) et + (addition), appliqués sur le gain de base du type de friction correspondant dans starting.

Pour interpréter une chaîne, tu dois parcourir ses étapes de gauche à droite. Pour chaque étape, tu calcules d’abord le résultat du modificateur appliqué au gain de base, puis tu ajoutes le résultat de l’étape précédente en bonus. Le gain de la chaîne est la somme de toutes ses étapes.

Par exemple, avec starting contenant transfer:60, crowd:40 et detour:30, la chaîne transfer*2->crowd+10->detour*3 se calcule ainsi :

  • Étape 1 — transfer*2 : 60 × 2 = 120. Pas d’étape précédente, bonus = 0. Résultat : 120
  • Étape 2 — crowd+10 : 40 + 10 = 50. Bonus de l’étape précédente : +120. Résultat : 170
  • Étape 3 — detour*3 : 30 × 3 = 90. Bonus de l’étape précédente : +170. Résultat : 260

Le gain total de cette chaîne est 120 + 170 + 260 = 550 secondes.

Une fois toutes les chaînes interprétées, tu additionnes leurs gains, tu multiplies le total par 52 pour obtenir une projection annuelle, puis tu le convertis en jours, heures et minutes.

Tu dois enfin vérifier si ce total annuel atteint ou dépasse l’objectif de 3 jours récupérés, soit 259 200 secondes.

Format de retour attendu :

OBJECTIF_ATTEINT:jours;heures;minutes

ou

OBJECTIF_NON_ATTEINT:jours;heures;minutes

Exemple : OBJECTIF_ATTEINT:3;2;18

Comme pour tous les challenges, n’hésite pas à te référer à la section « données et logique algorithmique ».

Solve the challenge

To code this challenge, several possibilities:
- Want to start coding right away? Use the online Sandbox.
- You can also copy/paste a dataset below.

challenge code for resolution via API: THREEDAYS_6

Some resources to help you:
Data and algorithmic logic Methodologies Corrections

Support for resolution

Progress through challenges using our resolution aids: tools, techniques and advice to help you overcome the most complex programming challenges with methodology, confidence and creativity.

Dataset and algorithmic logic

Based on the data and the expected response, use the process to determine the logic to implement.

Show data and progress

Methodologies

Develop a structured approach with our solving guides. Work on specific concepts such as object-oriented programming or unit testing to improve your coding style and progress.

No methodology yet for this challenge, but we are working on it! Follow us to be informed of the release!


Corrections

The corrections allow you to discover certain technical concepts but will also give you a solution to the challenge. Code the challenge yourself before consulting the corrections ;)

No answer yet for this challenge, but we&'re working on it! Follow us to be informed of the release!

Programming concept(s) that can be used to solve this challenge: Conditions, Parsing, Chaines de caractères

Keep coding

Other challenges to complete

Intermediate
Détermination de mot de passe

Détermination de mot de passe

Rentre dans la peau d’un hacker et tente de pénétrer le système d’une entreprise en craquant un mot de passe.

Hack Corrigé disponible : PHP
Intermediate
Bulma et la Capsule Corp.

Bulma et la Capsule Corp.

Aide Bulma à faire le tri dans ses capsules !

Hack Corrigé disponible : PHP
Intermediate
Greenoid #7 - A message to pass on

Greenoid #7 - A message to pass on

Hack Corrigé disponible : PHP