#include <stdio.h>
#include <stdbool.h>
bool canReachLastIndex(int arr[], int size) {
int currentIndex = 0;
while (currentIndex < size) {
// If we reach the last index, return true
if (currentIndex == size - 1) return true;
// If jump goes out of bounds, stop
if (currentIndex + arr[currentIndex] >= size) return false;
// Move to the next index by jumping
currentIndex += arr[currentIndex];
}
return false;
}
int main(void) {
int arr[] = {2, 3, 1, 1, 4};
int size = sizeof(arr) / sizeof(arr[0]);
if (canReachLastIndex(arr, size)) {
printf("Yes, we can reach the last index.\n");
} else {
printf("No, we cannot reach the last index.\n");
}
return 0;
}
/*
run:
Yes, we can reach the last index.
*/