Problem · Dynamic Programming

Find Arrangements

Learn this problem
HardIBMOA
See IBM hiring insights

Problem statement

Anju teaches Physics and Chemistry for P and C number of hours respectively. After teaching a particular subject for more than N number of hours continuously, Anju gets exhausted and needs to switch to another subject.

So the Principal has decided to schedule the time table for Anju in such a way that she does not teach a given subject for more than N number of hours continuously. The principal being weak in maths asks you to find out the maximum number of possible arrangements of hours in which Anju can teach a given subject for no more than N number of hours continuously.

Input format

  • First line contains T the required number of test cases.
  • Next T lines contain Three space-separated integers P, C, and N respectively.

Output format

For each test case, print the number of arrangements of hours in which Anju has not to teach a given subject for more than N number of hours continuously modulo 10^9+7.

Note: If no arrangement is possible print 0.

Function

findArrangements(P: int, C: int, N: int) → int

Examples

Example 1

P = 1C = 1N = 2return = 2
N/A

Example 2

P = 1C = 2N = 1return = 1
N/A

Constraints

  • 1 ≤ T ≤ 100
  • 1 ≤ P, C, N ≤ 10^3

More IBM problems

drafts saved locally
public int findArrangements(int P, int C, int N) {
  // write your code here
}
P1
C1
N2
expected2
checking account