ABA12C - Buying Apples!

Harish went to a supermarket to buy exactly ‘k’ kilograms apples for his ‘n’ friends. The supermarket was really weird. The pricing of items was very different. He went to the Apples section and enquired about the prices. The salesman gave him a card in which he found that the prices of apples were not per kg. The apples were packed into covers, each containing ‘x’ kg of apples, x > 0 and ‘x’ is an integer. An ‘x’ kg packet would be valued at ‘y’ rupees. So, the placard contained a table with an entry ‘y’ denoting the price of an ‘x’ kg packet. If ‘y’ is -1 it means that the corresponding packet is not available. Now as apples are available only in packets, he decides to buy atmost ‘n’ packets for his ‘n’ friends i.e he will not buy more than n packets of apples.

Harish likes his friends a lot and so he does not want to disappoint his friends. So now, he will tell you how many friends he has and you have to tell him the minimum amount of money he has to spend for his friends.


The first line of input will contain the number of test cases, C.

Each test case will contain two lines.

The first line containing N and K, the number of friends he has and the amount of Apples in kilograms which he should buy.

The second line contains K space separated integers in which the ith integer specifies the price of a ‘i’kg apple packet. A value of -1 denotes that the corresponding packet is unavailable.

  • 0 < N <= 100
  • 0 < K <= 100
  • 0 < price <= 1000


The output for each test case should be a single line containing the minimum amount of money he has to spend for his friends. Print -1 if it is not possible for him to satisfy his friends.

Sample I/O

3 5
-1 -1 4 5 -1
5 5
1 2 3 4 5


Explanation of test cases:

1) As there are only 3 and 4kg packets in the shop, he will not be able to satisfy his friends as he would not be able to buy exactly 5kg of apples.

2) He can buy five 1kg packet as he has to buy 5 kg. So the min money he should spend is 5.

hide comments
Eknoor Jassal: 2015-09-10 23:27:04

The statement is not right. There is no use made of the constraint "he will not buy more than n packets of apples."
for e.g. n =1 k = 5 and prices = 1 2 3 4 -1. The ans should be -1. But I got an AC with the solution which does not take n into account and gives output as 5 for this test case. The other solution which actually gives -1 got a WA.

Akash: 2015-08-14 20:04:05

no use of n

poojan : 2015-07-12 13:45:10

good dp ! just like famous cutting rode problem ! this is my second dp! felling great after solving this one!

janina: 2015-06-25 09:15:10

easy one......green in 1go.....problem statement is not correct i think......no use of n.

:.Mohib.:: 2015-06-19 15:32:10

Nice dp!!

shikhar jindal: 2015-03-12 08:06:39

can anyone plzz help me out telling is it possible that 5kg packet can have less price then 4kg packet..

Jugal kishor sahu: 2015-03-08 16:49:19

Abhishek is right. Question is not complete.n is useless.we can take any number of packet.

Mitch Schwartz: 2015-03-04 00:42:11

@ABHISHEK004: Before using a word like "ambiguous", you should take the time to look up what the word means.

ABHISHEK004: 2015-03-03 20:16:14

nice problem
but problem description is not complete
first is that price of packets can also be zero
second is that there is no use of value of 'n' i.e, number of friends.
Either this statement "he decides to buy atmost ‘n’ packets for his ‘n’ friends" should be removed from problem description or test cases should be updated as this is misleading the users

Last edit: 2015-03-06 11:04:45
Atul Kumar Verma: 2015-02-28 00:02:07

So Happy to solve this nice DP in one attempt :)

Last edit: 2015-02-28 00:02:22

Added by:Kashyap Krishnakumar
Time limit:1s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ASM64
Resource:Own problem