Question: 
Write a function to check if there is a subset with sum divisible by m.


Model's Code:
def modular_sum(arr, m, n):
    dp = [False] * m
    dp[0] = True
    
    for num in arr:
        new_dp = dp[:]
        for j in range(m):
            if dp[j]:
                new_dp[(j + num) % m] = True
        dp = new_dp
    
    return dp[n % m]



Sample Correct Code:
def modular_sum(arr, n, m): 
	if (n > m): 
		return True
	DP = [False for i in range(m)] 
	for i in range(n): 
		if (DP[0]): 
			return True
		temp = [False for i in range(m)] 
		for j in range(m): 
			if (DP[j] == True): 
				if (DP[(j + arr[i]) % m] == False): 
					temp[(j + arr[i]) % m] = True
		for j in range(m): 
			if (temp[j]): 
				DP[j] = True
		DP[arr[i] % m] = True
	return DP[0]


Asserts:
assert modular_sum([3, 1, 7, 5], 4, 6) == True
assert modular_sum([1, 7], 2, 5) == False
assert modular_sum([1, 6], 2, 5) == False


Tests:
Test 1 of 3: PASS
Test 2 of 3: FAIL: AssertionError()

Test 515 of 974: 379/515 (73.59223300970874%): failed