Detect Alternating Pattern

Code

#include <stdio.h>

int is_alternating_pattern(int *mem, int k, int n){
    int i = 0;
    while(i <= (n-5)){
        int flag = 1;
        for(int j = 0; j<k; j += 2){
            if(*(mem+i) != *(mem + i + j)){
                flag = 0;
            }
        }
        for(int j = 1; j < k; j += 2){
            if(*(mem + 1 + i) != *(mem + i + j)){
                flag = 0;
            }
        }
        if(flag){
            return 1; 
        }
        i++;
    }
    return 0;
}

int main(){
    int n, k, arr[100];
    scanf("%d%d",&n, &k); 
    for(int i = 0; i<n; i++){
        scanf("%d",&arr[i]); 
    }
    printf("%d", is_alternating_pattern(arr,k,n));
    return 0;
}

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

6 6 1 0 1 0 1 0

Expected Output

1