Arrivi finalmente al luogo verso cui puntavano tutti gli specchi: un'enorme parabola riflettente fissata sul fianco di una montagna.
La parabola è formata da tanti piccoli specchi che, purtroppo, puntano tutti in direzioni leggermente sfalsate. Invece di concentrare la luce in un unico punto focale, la disperdono. Visto che questo sistema serve a fornire energia per la lava, devi assolutamente rimetterlo a fuoco!
Guardando bene, noti che ogni specchio è collegato, tramite un complesso sistema di corde e carrucole, a una grande piattaforma metallica sottostante. Questa piattaforma è ricoperta di rocce. Spostando le rocce, il loro peso deforma la piattaforma in punti diversi, tirando le corde e modificando l'inclinazione degli specchi.
In breve: devi spostare le rocce per rimettere a fuoco la parabola.
A lato della piattaforma c'è un pannello di controllo che ti permette di inclinare l'intera struttura in una delle quattro direzioni (Nord, Sud, Est, Ovest). Il tuo input del puzzle rappresenta la mappa della piattaforma:
- Le rocce tonde (
O) rotoleranno nella direzione in cui inclini la piattaforma, finché non vengono bloccate da un ostacolo. - Le rocce cubiche (
#) sono incastrate e non si muovono mai. - Gli spazi vuoti (
.) permettono alle rocce tonde di scorrere liberamente.
Ecco un esempio di configurazione iniziale:
O....#....
O.OO#....#
.....##...
OO.#O....O
.O.....O#.
O.#..O.#.#
..O..#O..O
.......O..
#....###..
#OO..#....
Come primo test, inclina la piattaforma verso Nord (cioè verso l'alto). Tutte le rocce tonde scivoleranno verso l'alto il più possibile, fermandosi solo se incontrano il bordo, una roccia cubica o un'altra roccia tonda. Il risultato sarà questo:
OOOO.#.O..
OO..#....#
OO..O##..O
O..#.OO...
........#.
..#....#.#
..O..#.O.O
..O.......
#....###..
#....#....
Ora c'è un problema: le travi di supporto lungo il lato Nord della piattaforma sono danneggiate. Per assicurarti che non crolli tutto, devi calcolare il carico totale che pesa su di esse.
- Solo le rocce tonde (
O) generano peso sulle travi. Le rocce cubiche (#) non vanno calcolate. - Il carico generato da una singola roccia tonda dipende dalla riga in cui si trova: il valore è pari al numero di righe che la separano dal bordo Sud (il fondo) della piattaforma, contando anche la riga su cui poggia la roccia.
In pratica, la riga più in basso vale 1, e il valore sale andando verso Nord:
OOOO.#.O.. 10
OO..#....# 9
OO..O##..O 8
O..#.OO... 7
........#. 6
..#....#.# 5
..O..#.O.O 4
..O....... 3
#....###.. 2
#....#.... 1
Il carico totale è semplicemente la somma dei carichi generati da tutte le singole rocce tonde. Nel caso di questo esempio, il calcolo finale dà 136.
Il tuo compito: Prendi un generico input, inclina la piattaforma in modo che tutte le rocce tonde rotolino verso Nord. Una volta che si sono fermate tutte, qual è il carico totale sulle travi di supporto a Nord?