Monētas

Monētas

vidēji grūts
Latvijas Informātikas olimpiādes logo
Uzdevums no Latvijas 38. (2024./2025. m. g.) informātikas olimpiādes (LIO) skolas kārtas.

Stāsts

Kasieris Naudiņš katru naudas summu SS vēlas izsniegt, izmantojot pieejamo NN nominālu monētas tā, ka kopējais monētu skaits ir mazākais iespējamais. Var uzskatīt, ka katra nomināla monētas Naudiņam ir pieejamas neierobežotā skaitā.

Piemēram, ja S=10S=10 un pieejamas trīs veidu monētas, kuru nomināli ir 3,53, 5 un 77 vienības, tad nepieciešamo naudas summu var izveidot ar divu monētu palīdzību: 3+73+7 vai 5+55+5. Savukārt, izmantojot tikai šī veida monētas, nav iespējams izveidot naudas summas, kuru vērtība ir 1,21, 2 vai 44.

Uzrakstiet programmu, kas dotai SS vērtībai un monētu nomināliem atrod mazāko nepieciešamo monētu skaitu vai arī nosaka, ka šo vērtību izveidot nav iespējams!

Ievaddati

Ievaddatu pirmajā rindā dotas naturālu skaitļu NN (monētu nominālu skaits, N3000N \leq 3000) un SS (naudas summa, S3000S \leq 3000) vērtības. Nākamajā rindā doti NN atšķirīgi naturāli skaitļi aia_i (ai3000a_i \leq 3000) - pieejamo monētu nomināli. Starp katriem diviem blakus skaitļiem ievaddatos ir tukšumzīme.

Izvaddati

Izvaddatu vienīgajā rindā jābūt veselam skaitlim - mazākais monētu skaits, kāds nepieciešams, lai izveidotu naudas summu SS, vai 1-1, ja summu SS izveidot nav iespējams.

Piemēri

Ievaddati

3 10 3 7 5 Kopēt kodu

Izvaddati

2 Kopēt kodu

Ievaddati

3 4 3 5 7 Kopēt kodu

Izvaddati

-1 Kopēt kodu

Izpildes resursu ierobežojumi

CPU izpildes laiks uz testu: 0.4 sekundes.
RAM atmiņas apjoms uz testu: 256 megabaiti.

Apakšuzdevumi un to vērtēšana

#Apraksts un ierobežojumiPunkti
1.

Uzdevuma tekstā dotie trīs testi

2
2.

n2n \leq 2

13
3.

n,S50n, S \leq 50

20
4.

Katram ii eksistē vesels xx, ka ai=2xa_i = 2^x

31
5.

Bez papildu ierobežojumiem

34
Apakšuzdevumu punktu summa = 100.

1. apakšuzdevuma ievaddati

5 100 3 7 11 13 19 Kopēt kodu
7 1000 13 79 73 31 43 59 97 Kopēt kodu
7 999 1 2 5 10 20 50 100 Kopēt kodu