Can someone tell me how to solve this question which is taken from the Hackerearth challenge(already expired) **Nothing But Code - Hiring Challenge**

There are N jewellery shop. Each jewellery shop has three kinds of coins - Gold, Platinum, and Diamond having worth value A, B, and C respectively. You decided to go to each of N jewellery shop and take coins from each of the shop. But to do so following conditions must satisfy -

You can take at most 1 coin from an individual shop.

You can take at most X coins of Gold type.

You can take at most Y coins of Platinum type.

You can take at most Z coins of Diamond type.

You want to collect coins from shops in such a way that worth value of coins collected is maximised.

**Input Format :**

The first line contains an integer N. Where N is the number of jewellery shops.

The second line contains three integers X, Y, Z. Where X, Y, Z denotes the maximum number of coins you can collect of type Gold, Platinum, and diamond respectively.

Then N lines contain three space-separated integers A, B, C. Where A, B, C is the worth value of the Gold, Platinum, and diamond coin respectively.

**Output Format** :

Print a single integer representing the maximum worth value you can get.

**Constraints** :

1 <=N <= 200

1 <= X,Y,Z <= N

1<= A,B,C <10^9

**Sample Input**

```
4
2 1 1
5 4 5
4 3 2
10 9 7
8 2 9
```

**Sample Output**

`27`