Considera un ponte di lunghezza B formato da tessere etichettate con le cifre degli interi positivi concatenati. Ad esempio, se B avesse 41 anni, sarebbe simile al seguente:
----------------------------------------- 12345678910111213141516171819202122232425
Ora immagina un treno di lunghezza T che attraversi il ponte. Il punto più a sinistra del treno inizia dalla posizione X (1 indicizzato). Per comprendere meglio il problema, facciamo uno schema dell'evento, con B = 41, T = 10, X = 10 . Il treno viene disegnato usando segni uguali ( =) e linee:
__________
| ======== |
| ======== |
-----------------------------------------
12345678910111213141516171819202122232425
Il treno può avanzare, ad ogni passo, per somma delle tessere uniche su cui si trova. Ad esempio, le tessere su cui si trova il treno sopra sono [1, 0, 1, 1, 1, 2, 1, 3, 1, 4]:, le tessere uniche (deduplicate) sono:, [1, 0, 2, 3, 4]e la loro somma è 10. Quindi, il treno può avanzare di 10tessere. Dovremmo disegnarlo di nuovo e ripetere il processo fino a quando il punto più a sinistra del treno ha superato l'ultima tessera:
__________
| ======== |
| ======== |
-----------------------------------------
12345678910111213141516171819202122232425
Somma di tessere uniche: 1 + 5 + 6 + 7 + 8 + 9 = 36. Il treno avanza di 36 tessere ...
__________
| ======== |
| ======== |
-----------------------------------------
12345678910111213141516171819202122232425
Il treno ovviamente ha attraversato completamente il ponte, quindi dovremmo fermarci ora.
Poiché le persone all'interno sono annoiate, contano le tessere che il treno ha avanzato ogni volta. In questo caso specifico, 10e 36. Riassumendo tutto, il treno si è mosso 46prima di passare il ponte.
Compito
Dati tre numeri interi positivi, B (la lunghezza del ponte), T (la lunghezza del treno) e X (la posizione di partenza, 1 indicizzata ), il tuo compito è determinare quante tessere il treno ha spostato fino a quando non ha attraversato il ponte seguendo le regole sopra.
- Puoi presumere che:
- B è superiore a T .
- X è inferiore a B .
- T è almeno 2 .
- Il treno alla fine attraversa il ponte.
- Si applicano tutte le nostre regole standard.
- Questo è code-golf , quindi vince il codice più corto in byte!
Casi test
Ingresso ([B, T, X]) -> Uscita [41, 10, 10] -> 46 [40, 10, 10] -> 46 [30, 4, 16] -> 24 [50, 6, 11] -> 50
Un altro esempio funzionante per l'ultimo caso di test:
Il ponte è di lunghezza 50, il treno 6 e la posizione di partenza è 11.
______
| ==== |
| ==== |
--------------------------------------------------
12345678910111213141516171819202122232425262728293
Piastrelle uniche: [0, 1, 2]. Somma: 3.
______
| ==== |
| ==== |
--------------------------------------------------
12345678910111213141516171819202122232425262728293
Piastrelle uniche: [1, 2, 3, 4]. Somma: 10.
______
| ==== |
| ==== |
--------------------------------------------------
12345678910111213141516171819202122232425262728293
Piastrelle uniche: [1, 7, 8, 9]. Somma: 25.
______
| ==== |
| ==== |
--------------------------------------------------
12345678910111213141516171819202122232425262728293
Piastrelle uniche: [9, 3]. Somma: 12.
______
| ==== |
| ==== |
--------------------------------------------------
12345678910111213141516171819202122232425262728293
Il treno esiste il ponte. Somma totale: 3 + 10 + 25 + 12 = 50.
(200, 2, 169), il treno si blocca sulla00a…9899100101102….