#include <stdio.h>
#include <math.h>
int maxSubArrayLenEqualsToK(int arr[], int size, int k) {
    int max_len = 0;
    int sum = 0;
    int leftidx = 0;
    for (int rightidx = 0; rightidx < size; rightidx++) {
        sum += arr[rightidx];
        while (sum > k && leftidx < rightidx) {
            sum -= arr[leftidx];
            leftidx++;
        }
        max_len = fmax(max_len, rightidx - leftidx + 1);
    }
    return max_len;
}
int main() {
    int arr[] = {1, -1, 5, -2, -3, 2, 3, 3};
    int k = 3;
    int size = sizeof(arr) / sizeof(arr[0]);
    
    // 1, -1, 5, -2 = 3 (4)
    // 5, -2 = 3 (2)
    // -2, -3, 2, 3, 3 = 3 (5)
    printf("%d", maxSubArrayLenEqualsToK(arr, size, k));
    return 0;
}
/*
run:
5
*/