Tetris 2D
Limit pamięci: 32 MB
Mały Jaś poznał ostatnio grę Tetris. W grze tej klocki o różnych kształtach
opadają na platformę. Gra ta zainspirowała Jasia do zastanowienia się nad
następującym problemem. Załóżmy że wszystkie klocki to prostokąty
o wymiarach , gdzie
to długość boku poziomego.
Klocki mają opadać osobno, w pewnej ustalonej kolejności.
Dany klocek opada, dopóki nie natrafi na przeszkodę
w postaci platformy albo innego, już stojącego klocka, a wtedy się zatrzymuje
(w pozycji, w jakiej opadał) i pozostaje na swoim miejscu do końca gry.
Mając dane wymiary, kolejność opadania i tory lotu klocków gracz będzie
musiał podać wysokość najwyżej położonego punktu w układzie powstałym
po opadnięciu wszystkich klocków. Wszystkie klocki opadają pionowo w dół
i nie obracają się w trakcie opadania.
Zadanie
Napisz program, który:
- wczyta ze standardowego wejścia opisy kolejno opadających klocków,
- wyznaczy najwyższy punkt układu klocków po zakończeniu ich opadania,
- wypisze wynik na standardowe wyjście.
Wejście
W pierwszum wierszu wejścia znajdują się dwie liczby całkowite
(
), oznaczające odpowiednio:
szerokość platformy oraz liczbę klocków, które na nią opadną. W następnych
wierszach występują opisy kolejno opadających klocków.
Każdy opis klocka składa się z dwóch liczb całkowitych:
(
), reprezentujących klocek o szerokości
. Wierzchołki rzutu klocka na platformę będą miały współrzędne:
i
.
Wyjście
W jedynym wierszu wyjścia należy wypisać wysokość najwyższego punktu w układzie klocków po zakończeniu ich opadania.
Przykład
Dla danych wejściowych:
8 5 3 1 2 6 1 4 4 3 5 0
poprawną odpowiedzią jest:
3

Rysunek ilustruje wygląd układu klocków po zakończeniu ich opadania. Kolory kolejno opadających klocków to: zielony, żółty, czerwony, niebieski, fioletowy.