Problem description
Jednym z podstawowych elementów przetrwania w grze Minecraft jest unikanie głodu. Alex odczuwa głód, dlatego postanowiła złowić ryby w pobliskim jeziorze. W rejonie jeziora, w którym się znajduje, ryb jest jednak niewiele, dlatego postanowiła przepłynąć na jego przeciwległy róg i spróbować łowić tam.
Jezioro ma kształt prostokąta o wymiarach N × M bloków. Początkowo łódka Alex znajduje się w bloku położonym w rogu jeziora o współrzędnych (1,1), a celem jest dopłynięcie do przeciwległego rogu jeziora, czyli bloku o współrzędnych (N,M). Alex może poruszać się wyłącznie w górę, w dół oraz na boki i nie może opuszczać łódki. Jezioro znajduje się w biomie tajgi, w związku z czym część jego bloków stanowią bloki lodu, przez które łódka nie może przepłynąć, a pozostałe bloki są blokami wody.
Alex ma zużyty kilof, za pomocą którego może niszczyć bloki lodu, torując sobie drogę. Kilof jest niemal całkowicie wyczerpany, dlatego Alex może zniszczyć jedynie 2 bloki lodu. Ponadto, z powodu ograniczonego miejsca w ekwipunku, postanowiła zniszczyć dokładnie 2 bloki lodu, żeby w pełni zużyć kilof.
Alex zastanawia się, na ile różnych sposobów może to osiągnąć. Pomóż jej i wyznacz liczbę par bloków lodu, znajdujących się w dowolnym miejscu w obszarze jeziora, po których zniszczeniu Alex będzie mogła przepłynąć przez jezioro.
Wejście
W pierwszym wierszu wejścia znajdują się dwie liczby naturalne N i M, oznaczające wymiary jeziora.
Następne N wierszy opisuje
jezioro, każdy wiersz zawiera M znaków . lub
X, j-ty znak w
i-tym wierszu (Bi, j)
określa, czy blok o współrzędnych (i,j) jest blokiem wody
(Bi, j=
.) czy blokiem lodu (Bi, j=
X).
Jest gwarantowane, że B1, 1 = BN, M=
.
Wyjście
W pierwszym i jedynym wierszu wyjścia powinna znaleźć się pojedyncza liczba całkowita oznaczająca liczbę różnych par bloków lodu, po których zniszczeniu Alex może przepłynąć z (1,1) do (N,M).
Ograniczenia
1 ≤ N ⋅ M ≤ 250 000, 1 ≤ N, M
Podzadania
| Podzadanie | Warunki | Punkty |
|---|---|---|
| 1 | Po zniszczeniu dowolnego bloku lodu można dopłynąć z (1,1) do (N,M) | 5 |
| 2 | N ≤ 2 | 16 |
| 3 | N ⋅ M ≤ 10 000 | 29 |
| 4 | Brak dodatkowych ograniczeń | 50 |
Przykłady
| Wejście | Wyjście | Wyjaśnienie |
|
|
Jedyne pary bloków lodu po zniszczeniu których można przepłynąć z (1,1) do (3,5) to: (1,3) i (2,2), (1,3) i (2,3), (1,3) i (3,3), (1,3) i (3,4), (2,2) i (2,3), (2,3) i (3,3) oraz (3,3) i (3,4). |
| Wejście | Wyjście | Wyjaśnienie |
|
|
Nie da się zniszczyć dokładnie dwóch bloków lodu, ponieważ jest tylko jeden blok lodu. |
| Wejście | Wyjście | Wyjaśnienie |
|
|
Żeby można było przepłynąć z (1,1) do (5,7), trzeba zniszczyć przynajmniej jeden blok lodu z kolumny j = 6. Jeśli zniszczony zostanie blok (1,6), to drugi blok w parze może być dowolny (12 kombinacji). Jeśli nie zostanie zniszczony blok (1,6), ale zostanie zniszczony blok:
12 + 1 + 2 + 0 + 2 = 17 |