#include #include #include static inline int max(int a, int b) { return a > b ? a : b; } static bool canJump(int *nums, int numsSize) { int i, pos = 0; for (i = 0; i < numsSize - 1; i++) { if (pos < i || pos >= numsSize - 1) { break; } pos = max(i + nums[i], pos); } return pos >= numsSize - 1; } int main(int argc, char **argv) { int i, count = argc - 1; int *nums = malloc(count * sizeof(int)); for (i = 0; i < count; i++) { nums[i] = atoi(argv[i + 1]); } printf("%s\n", canJump(nums, count) ? "true" : "false"); return 0; }