Rozwiązanie w O(N*D), może przejdzie. Idziemy po wysokościach od 1 do N, nazwijmy tą zmienną i. Trzymamy vector, dp rozmiaru M, min wynik na dojście na daną współrzędna (x,i). Będzie co najwyżej D takich wierszy, gdzie jest jakiś głaz, a N-D bez głazu, te z głazem sobie przesymulujemy normalnie liniowo. A pozostaje nam jak obliczyć takie dziury w sensie:
Znamy wartości dp w czarnych, i trzeba jakoś szybko wyliczyć jakie będą wartości w czerwonych, H znamy. najlepiej w O(M), bo tak to będzie gorsza złożonność. Pewnie jakaś matma tu wchodzi, nie wiem jak, ale może np iść jakoś mądrze od lewej do prawej po kolumnach.