Ispirato da /puzzling//q/626
Nelle tue avventure arrivi a una serie di 7 ponti che devi attraversare. Sotto ogni ponte vive un troll. Per attraversare il ponte, devi prima dare al troll un numero di torte come percentuale del numero di torte che stai trasportando. Poiché questi sono troll gentili, ti restituiranno un certo numero di torte.
All'inizio di ogni giorno, il re del troll locale imposta la tassa sulla torta percentuale che ogni viaggiatore deve pagare e il rimborso della torta del troll - il numero di torte che ciascun troll deve restituire ai viaggiatori.
Il tuo compito è calcolare il numero minimo di torte necessarie per passare tutti e 7 i ponti dei troll per le condizioni indicate in quel giorno.
Assumere:
- Due parametri di input: imposta sulla torta percentuale (numero intero compreso tra 0 e 100) e rimborso della torta troll.
- Nessuno, nemmeno i troll, vuole una torta parzialmente mangiata da un altro troll. Se ti rimane una frazione di torta, il troll lo ottiene.
- Se un troll accetta una tassa sulle torte, ma deve restituirti tutte le torte (viene lasciato con le stesse o meno torte di prima), si arrabbierà e mangerà te e le tue torte.
- Ogni troll deve conservare almeno una torta completa.
- Puoi trasportare solo un massimo di 100 torte.
- Devi terminare la giornata in cui ti trovi attualmente o dall'altra parte di tutti e 7 i ponti.
Sfida:
Scrivi un programma completo per ottenere il numero minimo di torte da percorrere per il giorno corrente o zero se non è possibile viaggiare in sicurezza oggi - aspetterai di vedere quali sono i numeri domani.
L'input deve essere passato come stdin, argomenti della riga di comando o input di file.
Vince il codice più breve (conteggio byte).
Esempio:
25% di tasse sulla torta, rimborso di 2 troll cake.
inizia con 19 torte
prima del troll 1: (19 * 0,75) = 14,25
dopo il troll 1: (14 + 2) = 16
prima del troll 2: (16 * 0.75) = 12
dopo il troll 2: (12 + 2) = 14
eccetera.
19 torte -> 16 -> 14 -> 12 -> 11 -> 10 -> 9 -> 8
18 torte -> 15 -> 13 -> 11 -> 10 -> 9 -> 8 -> 8 (regola 3)
Per 18 torte, l'ultimo troll non è riuscito a conservare nessuna torta. Pertanto, il numero minimo di torte per un 25% / 2 giorni è 19.
input: 25 2
output: 19
Esempio 2:
90% di tasse sulle torte, 1 rimborso di troll
100 torte -> 11 -> 2 -> 1 (regola 4)
Il terzo troll non è riuscito a conservare nessuna torta. Pertanto non è possibile viaggiare con un 90% / 1 giorno anche a partire dal numero massimo di torte.
input: 90 1
output: 0
Dati
Metti insieme un rapido grafico dei valori di input e output. Sono stato sorpreso che questo non fosse "liscio" (come una curva a campana o simile); ci sono diverse isole notevoli.

Dati per gli interessati. Le colonne sono divise in intervalli del 5%, le righe sono unità di 1 intervalli di rimborso della torta (Excel ha ruotato l'immagine). Puoi vedere che non può esserci un rimborso superiore a 28 torte.
27, 17, 13, 14, 15, 18, 20, 24, 53, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
47, 27, 20, 19, 19, 19, 24, 39, 48, 68, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0
67, 37, 28, 24, 23, 28, 27, 29, 50, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
87, 47, 33, 29, 27, 28, 31, 44, 37, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 57, 40, 34, 31, 29, 34, 34, 62, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 67, 48, 39, 35, 38, 37, 49, 57, 76, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 77, 53, 44, 39, 38, 47, 39, 59, 78, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 87, 60, 49, 43, 39, 40, 54, 46, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 97, 68, 54, 47, 48, 44, 44, 71, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 73, 59, 51, 48, 47, 59, 73, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 80, 64, 55, 49, 51, 49, 68, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 88, 69, 59, 58, 54, 64, 70, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 93, 74, 63, 58, 57, 54, 57, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 100, 79, 67, 59, 67, 69, 82, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 84, 71, 68, 60, 59, 77, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 89, 75, 68, 64, 74, 79, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 94, 79, 69, 67, 64, 66, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 99, 83, 78, 71, 79, 91, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 87, 78, 74, 69, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 91, 79, 77, 84, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 95, 88, 87, 74, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 99, 88, 80, 89, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 89, 84, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 98, 87, 94, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 98, 91, 84, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 99, 94, 99, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 97, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
25 2caso di 11 torte, dai al troll 2,75 torte e torni 2 in modo che il troll mantenga .75 (+. 25) e sopravvivi. Nel 90 1caso di 2 torte, dai al troll 1.8 e torni indietro 1 in modo che il troll mantenga .8 (+. 2) ma muori.