Talentd
FleetCode

2927. Distribute Candies Among Children III

Hard57.3% acceptance2 companiesPremium elsewhere, free here

You are given two positive integers n and limit.

Return the total number of ways to distribute n candies among 3 children such that no child gets more than limit candies.

Example 1:

Input: n = 5, limit = 2
Output: 3
Explanation: There are 3 ways to distribute 5 candies such that no child gets more than 2 candies: (1, 2, 2), (2, 1, 2) and (2, 2, 1).

Example 2:

Input: n = 3, limit = 3
Output: 10
Explanation: There are 10 ways to distribute 3 candies such that no child gets more than 3 candies: (0, 0, 3), (0, 1, 2), (0, 2, 1), (0, 3, 0), (1, 0, 2), (1, 1, 1), (1, 2, 0), (2, 0, 1), (2, 1, 0) and (3, 0, 0).

Constraints:

  • 1 <= n <= 108
  • 1 <= limit <= 108

Asked at 2 companies

Hints open one at a time

Hint 1
Try to solve the problem using combinatorics.
Hint 2
If the limit didn’t exist, the problem would be distributing n candies between 3 children.
Hint 3
The answer to the above problem would be C(n + 2, 2).
Hint 4
Now try to combine this with the Inclusion-exclusion principle.
Hint 5
Apart from the above solution, there are other mathematical solutions that you can think of.
35:23
Still stuck?Read the written solution, or watch a walkthrough.
Open solution
Loading editor…
1class Solution:
2 def solve(self):
3 pass
4
Starter codePython 3Spaces: 4
Examples
Input
5
2
Input
3
3
Your code is saved on this device.Solution