(Traverse) Kickstart - CountDown

|

https://codingcompetitions.withgoogle.com/kickstart/round/000000000019ff43/00000000003380d2

psudo code solution

answer_counter = 0
decreasing_counter = 0
for (i = 1 to N) {
if (A[i] == A[i - 1] - 1) {
decreasing_counter = decreasing_counter + 1
} else {
decreasing_counter = 0
}
if (A[i] == 1 and decreasing_counter >= K - 1) {
answer_counter = answer_counter + 1
}
}
print answer_counter
//3
//12 3
//2 1 3 7 9 3 2 1 8 3 2 1
//4 2
//101 100 99 98
//9 6
//100 7 6 5 4 3 2 1 100

#include <stdio.h>

int main() {
  int t;
  scanf("%d", &t);

  for (int i = 1; i <= t; i++) {
    int count = 0;

    int n;
    int length;
    int arr[2000001];

    scanf("%d", &n);
    scanf("%d", &length);

    for (int j = 0; j < n; j++) {
      scanf("%d", &arr[j]);
    }

    int j = n - 1;
    while (j >= length-1) {
      if (arr[j] == 1) {
        bool check = true;

        for (int k = 1; k < length; k++) {

          if((j-k) < 0) {
            break;
          }
          if (arr[j - k] == arr[j] + k) {
          } else {
            check = false;
            if(j >= (k-1)) {
              j -= (k-1);
            }
            break;
          }
        }
        if (check) {
          count++;
          j -= length;
        } else {
          j--;
        }
      } else {
        j--;
      }
    }

    printf("Case #%d: %d\n", i, count);
  }
  return 0;
}