Hello, I can’t seem to understand why this code is giving Runtime Error:

The problem is CHFINVNT Problem | CodeChef.

This code runs the testcases just fine.

```
import math
t = int(input())
for _ in range(t):
n,p,k = map(int,input().split(' '))
freq_leftovers = [0 for i in range(0, k)]
for j in range(0,n):
freq_leftovers[j%k]+=1
ans=0
if p%k != 0:
for l in range(0, p%k):
ans+=freq_leftovers[l]
print(ans+math.floor(p/k)+1)
else:
print(ans+math.floor(p/k)+1)
```

Looking at the data range, you are trying to create a list of size 1e9, which gives the RTE.

1 Like

Wow that’s true, I did not think of that! Thank you!

The code you’ve provided is for a problem called “Chef and Bulb Invention” and is trying to determine the number of bulbs that can be made from a given number of leftovers.

The code seems to be mostly correct, but there is an error which is causing it to give a runtime error.

The error is in the first for loop where it is iterating from 0 to n, but it should be iterating from 0 to n-1. The reason is that the index of the list starts from 0 and the last index will be n-1.

You should change the line `for j in range(0,n):`

to `for j in range(0,n-1):`

this will fix the issue and the code should work as expected.

Also, there is another issue in the code, the variable `freq_leftovers`

is defined with `[0 for i in range(0, k)]`

which is causing it to have k element but the needed length is k-1. The reason is that the element with the index k-1 is missing.

You should change the line `freq_leftovers = [0 for i in range(0, k)]`

to `freq_leftovers = [0 for i in range(0, k-1)]`

.