|
3 | 3 | import java.util.HashMap;
|
4 | 4 | import java.util.Map;
|
5 | 5 |
|
6 |
| -/** |
7 |
| - * 1357. Apply Discount Every n Orders |
8 |
| - * |
9 |
| - * There is a sale in a supermarket, there will be a discount every n customer. |
10 |
| - * There are some products in the supermarket where the id of the i-th product is products[i] and the price per unit of this product is prices[i]. |
11 |
| - * The system will count the number of customers and when the n-th customer arrive he/she will have a discount on the bill. |
12 |
| - * (i.e if the cost is x the new cost is x - (discount * x) / 100). Then the system will start counting customers again. |
13 |
| - * The customer orders a certain amount of each product where product[i] is the id of the i-th product the customer ordered and |
14 |
| - * amount[i] is the number of units the customer ordered of that product. |
15 |
| - * |
16 |
| - * Implement the Cashier class: |
17 |
| - * Cashier(int n, int discount, int[] products, int[] prices) Initializes the object with n, the discount, the products and their prices. |
18 |
| - * double getBill(int[] product, int[] amount) returns the value of the bill and apply the discount if needed. Answers within 10^-5 of the actual value will be accepted as correct. |
19 |
| - * |
20 |
| - * Example 1: |
21 |
| - * Input |
22 |
| - * ["Cashier","getBill","getBill","getBill","getBill","getBill","getBill","getBill"] |
23 |
| - * [[3,50,[1,2,3,4,5,6,7],[100,200,300,400,300,200,100]],[[1,2],[1,2]],[[3,7],[10,10]],[[1,2,3,4,5,6,7],[1,1,1,1,1,1,1]],[[4],[10]],[[7,3],[10,10]],[[7,5,3,1,6,4,2],[10,10,10,9,9,9,7]],[[2,3,5],[5,3,2]]] |
24 |
| - * Output |
25 |
| - * [null,500.0,4000.0,800.0,4000.0,4000.0,7350.0,2500.0] |
26 |
| - * Explanation |
27 |
| - * Cashier cashier = new Cashier(3,50,[1,2,3,4,5,6,7],[100,200,300,400,300,200,100]); |
28 |
| - * cashier.getBill([1,2],[1,2]); // return 500.0, bill = 1 * 100 + 2 * 200 = 500. |
29 |
| - * cashier.getBill([3,7],[10,10]); // return 4000.0 |
30 |
| - * cashier.getBill([1,2,3,4,5,6,7],[1,1,1,1,1,1,1]); // return 800.0, The bill was 1600.0 but as this is the third customer, he has a discount of 50% which means his bill is only 1600 - 1600 * (50 / 100) = 800. |
31 |
| - * cashier.getBill([4],[10]); // return 4000.0 |
32 |
| - * cashier.getBill([7,3],[10,10]); // return 4000.0 |
33 |
| - * cashier.getBill([7,5,3,1,6,4,2],[10,10,10,9,9,9,7]); // return 7350.0, Bill was 14700.0 but as the system counted three more customers, he will have a 50% discount and the bill becomes 7350.0 |
34 |
| - * cashier.getBill([2,3,5],[5,3,2]); // return 2500.0 |
35 |
| - * |
36 |
| - * |
37 |
| - * Constraints: |
38 |
| - * 1 <= n <= 10^4 |
39 |
| - * 0 <= discount <= 100 |
40 |
| - * 1 <= products.length <= 200 |
41 |
| - * 1 <= products[i] <= 200 |
42 |
| - * There are not repeated elements in the array products. |
43 |
| - * prices.length == products.length |
44 |
| - * 1 <= prices[i] <= 1000 |
45 |
| - * 1 <= product.length <= products.length |
46 |
| - * product[i] exists in products. |
47 |
| - * amount.length == product.length |
48 |
| - * 1 <= amount[i] <= 1000 |
49 |
| - * At most 1000 calls will be made to getBill. |
50 |
| - * Answers within 10^-5 of the actual value will be accepted as correct. |
51 |
| - * */ |
52 | 6 | public class _1357 {
|
53 | 7 | public static class Solution1 {
|
54 | 8 | public static class Cashier {
|
|
0 commit comments