#include <stdio.h>
int find_pattern(int *mem, int n) {
// Write your pointer-based logic here
int left = 0;
int right = 0;
int cnt = 0;
int expect_val = mem[left];
while(cnt != n)
{
if(left == n - 1) return -1;
if(mem[right] == expect_val)
{
expect_val = mem[right] + 1;
cnt++;
right++;
}
else
{
if(cnt != 1 ) break; //end of a subsequence
//can also use cnt to check size
left++;
right++;
expect_val = mem[left] + 1;
cnt = 1;
}
}
return left;
}
int main() {
int n, arr[100];
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
int res = find_pattern(arr, n);
printf("%d", res);
return 0;
}
Input
8 2 4 5 6 9 11 12 14
Expected Output
1