Entscheidungsproblem Signal 11

Sto cercando di risolvere questo esercizio, ma nei Subtask 3 e 5 mi restituisce l’errore “Signal 11”.
Non mi pare che superi la memoria disponibile, nè che cerchi di accedere a memoria non allocata.
Qualcuno più esperto potrebbe dare un’occhiata?
Grazie.

(stateTable e moveTable rappresentano la tabella di transizione, e vi si accede tramite [stato][valore nella cella].
In memo (a cui accedo per [posizione][stato]) “segno” il passaggio in una certa cella/stato con il valore valueSet (da 0 a n-1), che indica il percorso effettuato partendo dalla cella del nastro con indice valueSet. Se incontro una cella in memo con lo stesso valore attuale, sono entrato in loop e quindi restituisco false, se trovo un valore diverso e la soluzione è valida per quella cella del nastro, significa che mi trovo su un percorso valido, quindi restituisco true e vado avanti.)
https://pastebin.com/xc21awjt

Leggi l’input in modo sbagliato, nelle assunzioni non c’è scritto che la tabella di transizione ti venga data in ordine. Devi leggere i 4 caratteri stato iniziale, carattere letto, stato arrivo, spostamento e non usare gli indici del ciclo per riempire la tabella.

Perfetto, grazie mille, avevo dato per scontato che l’input fosse ordinato.

Edit
Adesso gli ultimi testcase vanno in TLE, è possibile risolverlo senza fare grosse modifiche all’algoritmo o è proprio la ricorsione in sè ad essere troppo lenta per questo problema?

Edit #2
Risolto, era più semplice del previsto.