Module: Programmation dynamique. Bases


Problem

3 /5


On joue aux cailloux

Problem

Il était une fois dans l'enfance, nous aimions tous jouer au jeu "Pebbles" ou "Cinq cailloux", comme quelqu'un l'appelait. Pour le jeu, il fallait des cailloux ordinaires, que l'on pouvait facilement trouver dans la rue. Il était possible de jouer n'importe où; La première étape du jeu était la suivante. Les cinq cailloux sont jetés au sol devant eux. L'un d'eux a été choisi. Il s'agit d'une bille blanche. Ce caillou est lancé en l'air et pendant qu'il vole, il faut ramasser un des cailloux restés au sol et avoir le temps d'attraper celui qui vole de la même main. Le caillou ramassé est mis de côté et l'action est répétée pour tous les cailloux restants.
Dans les étapes suivantes, le nombre de cailloux à ramasser augmente. La dernière étape était l'examen, lorsqu'il fallait lancer tous les cailloux collectés en l'air et les attraper avec le dos de la main, puis les lancer à nouveau et les attraper avec la paume ouverte. Combien de cailloux sont restés à la fin, autant de points que vous obtenez. Le tour passe au joueur suivant, qui répète également toutes les étapes. Ensuite, une nouvelle manche du jeu a été lancée. Le gagnant était celui qui avait marqué le plus de points pour toutes les manches.
Beaucoup de gars ont rendu le jeu difficile de toutes sortes de façons.
Disons que les gars ont un nombre infini de cailloux par terre. À la fin du tour, ils n'ont pas besoin d'attraper tous les cailloux dans leurs paumes, mais juste assez pour que leur nombre total de points augmente de 1 ou double ou triple. Avant le début du jeu, tout le monde a déjà 1 point. Le gagnant sera celui qui obtiendra N points le plus rapidement.
Supposons que tous les joueurs aient suffisamment d'expérience de jeu et qu'ils arrivent toujours à l'examen avec le nombre de pierres dont ils ont besoin (afin qu'ils puissent augmenter le nombre de points requis de 1, doubler ou tripler).

Déterminez le nombre minimum de tours que vous devez jouer pour obtenir le nombre de points donné N à partir de .

Entrée

Le programme reçoit un nombre unique en entrée, ne dépassant pas 106.


Sortie

Vous devez imprimer un nombre : le plus petit nombre d'opérations que vous recherchez.

 

 

Exemples
# Entrée Sortie
1 1 0
2 5 3
3 32718 17