Question: 
Write a function to find maximum possible sum of disjoint pairs for the given array of integers and a number k.


Model's Code:
def max_sum_pair_diff_lessthan_K(arr, k, diff):
    arr.sort(reverse=True)
    total_sum = 0
    used = [False] * len(arr)
    
    for i in range(len(arr)):
        if used[i]:
            continue
        for j in range(i + 1, len(arr)):
            if not used[j] and abs(arr[i] - arr[j]) < diff:
                total_sum += arr[i] + arr[j]
                used[i] = True
                used[j] = True
                break
            
    return total_sum



Sample Correct Code:
def max_sum_pair_diff_lessthan_K(arr, N, K): 
	arr.sort() 
	dp = [0] * N 
	dp[0] = 0
	for i in range(1, N): 
		dp[i] = dp[i-1] 
		if (arr[i] - arr[i-1] < K): 
			if (i >= 2): 
				dp[i] = max(dp[i], dp[i-2] + arr[i] + arr[i-1]); 
			else: 
				dp[i] = max(dp[i], arr[i] + arr[i-1]); 
	return dp[N - 1]


Asserts:
assert max_sum_pair_diff_lessthan_K([3, 5, 10, 15, 17, 12, 9], 7, 4) == 62
assert max_sum_pair_diff_lessthan_K([5, 15, 10, 300], 4, 12) == 25
assert max_sum_pair_diff_lessthan_K([1, 2, 3, 4, 5, 6], 6, 6) == 21


Tests:
Test 1 of 3: PASS
Test 2 of 3: PASS
Test 3 of 3: PASS

Test 571 of 974: 424/571 (74.25569176882661%): success