Informātikas olimpiādes

ID: olimp
Grūtība: 3/5
Laika limits: 1

Uzdevums

Dota virkne, kas satur latīņu alfabēta lielos burtus un simbolus '?' (jautājuma zīmes). Katra jautājuma zīme ir jāaizstāj ar kādu no lielajiem latīņu alfabēta burtiem. Iegūtajai virknei varam izrēķināt tās vērtību jeb punktu skaitu šādi:

Piemēram, virknē “BOLIOIOIDI” var atrast vienu fragmentu “LIO” un divus fragmentus “IOI” (fragmenti var arī pārklāties).

Uzrakstiet programmu, kas dotai virknei un X, Y, Z vērtībām aprēķina, kāda ir lielākā iespējamā virknes, kurā katra jautājuma zīme aizstāta ar kādu no lielajiem latīņu alfabēta burtiem, vērtība!

 

Ievaddati

Teksta datnes olimp.dat pirmajā rindā doti četri naturāli skaitļi N, X, Y, Z, kas atdalīti ar tukšumzīmi. Neviens no šiem skaitļiem nepārsniedz 50 000.

Datnes otrajā rindā dota virkne, kas satur tieši N simbolus.

 

Izvaddati

Teksta datnes olimp.rez vienīgajā rindā jāizvada viens vesels skaitlis - lielākais iespējamais punktu skaits, ko var saņemt, aizvietojot virknē esošās jautājuma zīmes ar lielajiem latīņu alfabēta burtiem.

 

Piemērs

olimp.datolimp.rez
10 2 3 5
BOLIOIOIDI
12
  
olimp.datolimp.rez
10 1 7 3
BO?IO?OI??
17
Jāveido virkne BOIIOBOIOI.
  
olimp.datolimp.rez
4 2 4 3
????
5
Jāveido virkne LIOI.

 

Atsauces

Uzdevums izmantots Latvijas 22. informātikas olimpiādē 2009. gadā.
© 2001-2002 olimps! http://www.lio.lv/olimps/