1276. Number of Burgers with No Waste of Ingredients
Given two integers tomatoSlices and cheeseSlices. The ingredients of different burgers are as follows:
- Jumbo Burger: 4 tomato slices and 1 cheese slice.
- Small Burger: 2 Tomato slices and 1 cheese slice.
Return total_jumbo, total_small so that the number of remaining tomatoSlices equal to 0 and the number of remaining cheeseSlices equal to 0. If it is not possible to make the remaining tomatoSlices and cheeseSlices equal to 0 return \[\].
Example 1:
Input: tomatoSlices = 16, cheeseSlices = 7
Output: 1,6
Explanation: To make one jumbo burger and 6 small burgers we need 41 + 2 6 = 16 tomato and 1 + 6 = 7 cheese.
There will be no remaining ingredients.
Example 2:
Input: tomatoSlices = 17, cheeseSlices = 4
Output: \[\]
Explanation: There will be no way to use all ingredients to make small and jumbo burgers.
Example 3:
Input: tomatoSlices = 4, cheeseSlices = 17
Output: \[\]
Explanation: Making 1 jumbo burger there will be 16 cheese remaining and making 2 small burgers there will be 15 cheese remaining.
Constraints:
- 0 < = t o m a t o S l i c e s , c h e e s e S l i c e s < = 10 7 0 <= tomatoSlices, cheeseSlices <= 10^7 0<=tomatoSlices,cheeseSlices<=107
From: LeetCode
Link: 1276. Number of Burgers with No Waste of Ingredients
Solution:
Ideas:
Set up two equations (4j + 2s = tomatoSlices and j + s = cheeseSlices), solve for the number of jumbo and small burgers, and return them only if both are non-negative integers; otherwise return an empty array.
Code:
c
#include <stdlib.h>
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* numOfBurgers(int tomatoSlices, int cheeseSlices, int* returnSize) {
*returnSize = 0;
/* Tomato slices must be even. */
if (tomatoSlices % 2 != 0) {
return NULL;
}
int jumbo = tomatoSlices / 2 - cheeseSlices;
int small = 2 * cheeseSlices - tomatoSlices / 2;
/* Burger counts cannot be negative. */
if (jumbo < 0 || small < 0) {
return NULL;
}
int* result = (int*)malloc(2 * sizeof(int));
if (result == NULL) {
return NULL;
}
result[0] = jumbo;
result[1] = small;
*returnSize = 2;
return result;
}