Siltumtrasei jāsavieno n×m rūtiņas liela taisnstūrveida apgabala kreisā augšējā stūra rūtiņas (1;1) augšējā mala ar labā apakšējā stūra rūtiņas (n;m) labo malu. Siltumtrases izbūvē var izmantot 1.zīmējumā redzamās četru veidu caurules, katra no kurām savieno divas vienas rūtiņas malas. | 1.zīmējums. Cauruļu veidi. |
Sākotnēji katra apgabala rūtiņa var būt tukša (un tad tajā var iebūvēt jaunu cauruli), vai arī tajā var atrasties: Piemērs apgabalam ar apstādījumiem un senāk ieraktām caurulēm (n=4, m=5) dots 2.zīmējumā. Rūtiņā (4;2) atrodas apstādījumi. |
2.zīmējums. Apgabala piemērs. |
Šim apgabalam siltumtrasi iespējams izbūvēt trīs dažādos veidos, kas parādīti 3.zīmējumā.
3.zīmējums. Iespējamie siltumtrases izbūves varianti.
Uzrakstiet programmu, kas dotam apgabalam nosaka, cik dažādos veidos iespējams izbūvēt siltumtrasi.
Teksta faila trase.in pirmajā rindā dotas divu naturālu skaitļu n (n <= 10) un m (m <= 10) vērtības, kas atdalītas ar tukšumsimbolu. Nākošajās m faila rindās dots pa n cipariem katrā. Faila i+1-ās rindas j-tais cipars atbilst apgabala i-tās rindas j-tās kolonas rūtiņai. Cipars 0 apzīmē tukšu rūtiņu, cipari no 1 līdz 4 apzīmē rūtiņā iebūvētu cauruli saskaņā ar 1.zīmējumu, bet 5 nozīmē, ka attiecīgajā rūtiņā ir apstādījumi. Katrā rindā starp diviem blakus esošiem cipariem ir viens tukšumsimbols.
Teksta faila trase.out pirmajā rindā jāizvada viens vesels skaitlis - dažādo iespējamo siltumtrases izbūves variantu skaits.
trase.in | trase.out |
4 5 0 0 3 2 0 4 0 5 4 0 0 0 4 0 1 0 0 3 0 0 |
3 |