1. VIRKNE
Gadās, ka datora klaviatūrai
kāds no taustiņiem iesprūst un tad viena burta vietā
tekstā būs vairāki vienādi, pēc kārtas
esoši burti. Piemēram, vārda "klavieres" vietā var
iznākt "kkkkkklaavierrrrrees".
Uzrakstiet programmu, kas labo šādas
kļūdas - t.i., ievadītā simbolu virknē atrod
visas vietas, kurās ir vairāki vienādi simboli pēc
kārtas, un katrā šādā vietā atstāj
tikai vienu no šiem simboliem, bet pārējos izdzēš
un virkni "sabīda kopā".
Ievaddati
Teksta faila VIRKNE.DAT
pirmajā rindā ir dota simbolu virkne, kurā ir tikai latīņu
alfabēta mazie burti. Virknē ir vismaz viens un ne vairāk
kā 250 simboli.
Izvaddati
Teksta faila VIRKNE.REZ
pirmajā rindā izvadiet izlaboto virkni.
Piemērs
Ievaddati (VIRKNE.DAT)
Izvaddati (VIRKNE.REZ)
kkkkkklaavierrrrrees
klavieres
Zīmuļu fabrikā katra zīmuļa sagatave tiek apstrādāta sekojoši - vispirms tā tiek nokrāsota krāsošanas iekārtā un tūlīt pēc tam tiek lakota lakošanas iekārtā. Diemžēl neviena no iekārtām nav pilnībā noregulēta. Krāsošanas iekārta pēc katrām n nokrāsotām sagatavēm vienu nenokrāso (bet padod tālāk uz lakošanu). Savukārt lakošanas iekārta pēc katrām m nolakotām sagatavēm vienu nenolako. Tādējādi bez kārtīgi nokrāsotiem un nolakotiem zīmuļiem var iznākt trīs veida brāķi: pavisam neapstrādāta sagatave, nokrāsoti, bet nenolakoti un nekrāsoti, bet nolakoti zīmuļi.
Uzrakstiet programmu, kas ievadītām n, m un k (apstrādājamo sagatavju skaits) vērtībām nosaka, cik tiks iegūti pilnīgi apstrādāti zīmuļi un cik kāda veida brāķis tiks saražots. Zināms, ka pēdējā sagatave pirms mūs interesējošo sagatavju apstrādes netika ne nokrāsota, ne nolakota.
Tā, piemēram, ja n=3, m=5 un k=17, tad sagatavju apstrādi var attēlot sekojošā tabulā (¡ nozīmē, ka dotā operācija ir izdarīta, l - ka nav):
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | |
Krāsošana | ¡ | ¡ | ¡ | l | ¡ | ¡ | ¡ | l | ¡ | ¡ | ¡ | l | ¡ | ¡ | ¡ | l | ¡ |
Lakošana | ¡ | ¡ | ¡ | ¡ | ¡ | l | ¡ | ¡ | ¡ | ¡ | ¡ | l | ¡ | ¡ | ¡ | ¡ | ¡ |
Kā redzams, no 17 sagatavēm pilnīgi apstrādātas ir 12. Viena (12.) ir palikusi pilnīgi neapstrādāta. Viena sagatave (6.) ir nokrāsota, bet nav nolakota. Trīs sagataves (4.,8. un 16.) nav nokrāsotas, bet ir nolakotas.
Ievaddati
Teksta faila FABRIKA.DAT
pirmajā rindā ir dotas trīs naturālu skaitļu
n, m un k vērtības.
Zināms, ka 0<n<106, 0<m<106, 0<k<109. Starp katrām divām blakus esošajām vērtībām ir viens tukšumsimbols.
Izvaddati
Teksta faila FABRIKA.REZ
pirmajā rindā izvadiet èetru veselu skaitļu vērtības:
a) to zīmuļu, kas ir gan nokrāsoti,
gan nolakoti, skaitu;
b) neapstrādāto sagatavju (nav ne krāsotas,
ne lakotas) skaitu;
c) nokrāsoto, bet nenolakoto zīmuļu
sagatavju skaits;
d) nenokrāsoto, bet nolakoto zīmuļu
sagatavju skaits.
Skaitļi failā jāizvada norādītajā
secībā. Starp katriem diviem blakus esošajiem skaitļiem
jāatstāj viens tukšumsimbols.
Piemēri
Ievaddati (FABRIKA.DAT)
Izvaddati (FABRIKA.REZ)
3 5 17
12 1 1 3
Ievaddati (FABRIKA.DAT)
Izvaddati (FABRIKA.REZ)
999999 999999 999999999
999999000 999 0 0
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. |
Caurulēm siltumtrasē jābūt
iebūvētām tieši tā kā redzams zīmējumā,
bez pagriešanas. Tāpēc neviena caurule nevar savienot
ne rūtiņas kreiso malu ar augšējo, ne labo malu
ar apakšējo. Izbūvētās siltumtrases caurulēm
jābūt savienotām, t.i., ja divu blakus rūtiņu
caurules pieder siltumtrasei, tad cauruļu galiem abās rūtiņās
ir jāpienāk pie šo rūtiņu kopīgās
malas. Visai siltumtrasei ir jāatrodas dotajā taisnstūrveida
apgabalā - neviens tās posms nedrīkst atrasties ārpus
tā.
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.
Ievaddati
Teksta faila TRASE.DAT
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.
Izvaddati
Teksta faila TRASE.REZ
pirmajā rindā jāizvada viens vesels skaitlis - dažādo
iespējamo siltumtrases izbūves variantu skaits.
Piemērs
Ievaddati (TRASE.DAT)
Izvaddati (TRASE.REZ)
4 5
3
0 0 3 2
0 4 0 5
4 0 0 0
4 0 1 0
0 3 0 0