#include <stdio.h>
int is_alternating_pattern(int *mem, int k) {
// Write your pointer logic here
int* p = mem;
for(int i = 0; i < k - 1; ++i){
if(*p == *(p+1)){
return 0;
}
++p;
}
return 1;
}
int main() {
int n, k, arr[100];
scanf("%d %d", &n, &k);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
int res = is_alternating_pattern(arr, k);
printf("%d", res);
return 0;
}
/*
Questions:
- can the segment size k be less than n ?
- are the values in array 0 or 1?
- k >= 2
- cases where k > n
- empty arrays or k = 0
Plan:
- Pointer arithmetic: no arr indexing
- Alternating pattern: for size k, starting at mem[0], check if adjacent pairs
are alternating
- Implementation
- pointer to traverse the array
- each position from 0 to k - 1, compare *p and *(p+1)
- if any adjacent pairs are equal, return 0
- if all pairs alternate then return 1
*/
Input
6 6 1 0 1 0 1 0
Expected Output
1