# PROBLEM LINK:

* Author:* Rishabh Rathi

*Rishabh Rathi*

**Tester:**# DIFFICULTY:

CAKEWALK

# PREREQUISITES:

None

# PROBLEM:

You go to a shop to buy masks in this pandemic.

Now, there are 3 different types of packets of mask

A packet of 10 masks

A packet of 5 masks

A packet of 1 mask

You are given the costs of each packet. A packet of 10 masks costs Rs. X, a packet of 5 masks costs Rs. Y and a packet of 1 mask costs Rs. Z.

You need to find the minimum sum of rupees you need to pay to buy a total of exactly N masks from the shop.

# EXPLANATION:

We can find cost of 1 mask in each packet.

Cost of 1 mask in a packet of 10 masks = X/10

Cost of 1 mask in a packet of 5 masks = Y/5

Cost of 1 mask in a packet of 1 mask = Z

After that, we will keep on buying the packets which have the least mask cost.

# SOLUTIONS:

## Setter's Solution - Python

```
t = int(input())
for _ in range(t):
n, x, y, z = map(int, input().split())
# cost of 1 mask in each packet
cost1_10 = x/10
cost1_5 = y/5
cost1_1 = z
total = 0
# single packet is cheapest
if (cost1_1<=cost1_5 and cost1_1<=cost1_10):
total += n*z
# packet of 5 masks is cheapest
elif (cost1_5<=cost1_1 and cost1_5<=cost1_10):
cnt5 = n//5
total += cnt5*y
n %= 5
# for remaining, buy packet of 1 mask
total += n*z
# packet of 10 masks is cheapest
else:
cnt10 = n//10
total += cnt10*x
n %= 10
# if packet of 5 masks is cheapest
if (cost1_5<cost1_1):
cnt5 = n//5
total += cnt5*y
n %= 5
# remaining has to be packet of 1 mask
total += n*z
print(total)
```

## Tester's Solution - CPP

```
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
ll t, n, x, y, z, total, cnt5, cnt10;
double cost1_10, cost1_5, cost1_1;
cin>>t;
while(t--) {
cin>>n;
cin>>x;
cin>>y;
cin>>z;
cost1_10 = (double)x/10;
cost1_5 = (double)y/5;
cost1_1 = (double)z;
total = 0;
if (cost1_1<=cost1_5 && cost1_1<=cost1_10) {
total += n*z;
}
else if (cost1_5<=cost1_1 && cost1_5<=cost1_10) {
cnt5 = n/5;
total += cnt5*y;
n %= 5;
total += n*z;
}
else {
cnt10 = n/10;
total += cnt10*x;
n %= 10;
if (cost1_5<cost1_1) {
cnt5 = n/5;
total += cnt5*y;
n %= 5;
}
total += n*z;
}
cout<<total<<"\n";
}
return 0;
}
```

Feel free to share your approach. In case of any doubt or anything is unclear please ask it in the comment section. Any suggestions are welcomed.