Mūra atjaunošana

2
Latvijas Informātikas olimpiādes logo

Uzdevums no Latvijas 39. (2025./2026. m.g.) informātikas olimpiādes (LIO) novada kārtas; jaunākajai (8.-10. klašu) grupai.

Stāsts

Arheologs Teodors nodarbojas ar senu mūru izpēti un atjaunošanu. Lai sāktu mūra atjaunošanu, vispirms tiek izveidots tā shematisks attēls, kas izskatās kā N×MN \times M vienības liels taisnstūris, kur bojātajām vietām attēlā atbilst rūtiņas ar krustiņiem. Mūru atjaunošanai Teodors izmanto standarta blokus, kuru izmēri ir 1×k1 \times k vienības, kur kk - naturāls skaitlis robežās no 11 līdz KK. Dažādiem blokiem kk vērtība var būt atšķirīga. Lai atjaunotais mūris izskatītos glīti, Teodors visus blokus novieto vienā virzienā - vai nu visus horizontāli, vai arī vertikāli. Protams, ka viņš vēlas izmantot pēc iespējas mazāku bloku skaitu.

Viena mūra sienas fragmenta shematisks attēls parādīts attēlā (a). Novietojot blokus horizontāli, tā atjaunošanai nepieciešami vismaz 19, bet vertikāli - vismaz 20 bloki (attēla (b) un (c)).

Bojātas mūra sienas fragmenta piemērs, K=3, N=7, M=8
Bojātas mūra sienas fragmenta piemērs, K=3, N=7, M=8

Uzrakstiet datorprogrammu, kas dotai KK vērtībai un mūra fragmenta shēmai nosaka, kāds mazākais bloku skaits nepieciešams tā atjaunošanai!

Ievaddati

Pirmajā rindā doti trīs naturāli skaitļi - maksimālais bloka garums KK (K<1000K < 1000), mūra fragmenta augstums NN un platums MM (1M,N1061 \leq M,N \leq 10^6, N×M106N \times M \leq 10^6). Starp katriem diviem blakus skaitļiem ir tukšumzīme.

Nākamajās NN rindās dots mūra fragmenta apraksts. Katrā no šīm rindām ir tieši MM simboli xx (atbilst bojātai vietai) vai ..(punkts, atbilst nebojātai vietai) bez atdalošajām tukšumzīmēm.

Izvaddati

Vienīgajā rindā jāizvada vesels nenegatīvs skaitlis - mazākais bloku skaits, kāds nepieciešams dotā mūra fragmenta atjaunošanai.

Piemēri

Ievaddati

3 7 8 xx.x.xxx x..xxx.. xx..x..x xx.xxx.x x..x...x xxxxxxxx xxxxxx.. Kopēt kodu

Izvaddati

19 Kopēt kodu

Ievaddati

2 3 3 xxx x.x xxx Kopēt kodu

Izvaddati

6 Kopēt kodu

Apakšuzdevumi un to vērtēšana

#Apakšuzdevuma aprakstsPunkti
1.

Uzdevuma tekstā dotie trīs testi

2
2.

M,N20M,N \leq 20

14
3.

K=2K=2

24
4.

M,NKM,N \leq K

28
5.

Bez papildu ierobežojumiem

32
Apakšuzdevumu punktu summa = 100.

1. apakšuzdevuma ievaddati

2 10 7 xxxxxxx xxxxxxx xxx.xxx xxxxxxx x.xxxxx xx.x.xx xxxxxxx xxxxxxx xxxxxxx xxxxxxx Kopēt kodu
4 10 13 .........xxx. ......xxxxx.. ...xx..xxx... .xxxx...xx... xxxxxx..xx... .xxxxxxxxx... .....xxxxx... .......xxxxx. .........xxx. ...........x. Kopēt kodu
5 10 13 x.xxxx...xxxx ..xxxxx...xxx x...xxxx....x x....xxxx.... xxx...xxxxx.. ..xx....xxxxx ...xx....xxxx x...xxx...xxx xx...xxx....x xxx..xxxx.... Kopēt kodu