#include <stdio.h>
// typedef struct {
// int buffer[100];
// int head;
// int tail;
// int count;
// int capacity;
// } CircularBuffer;
// void insert_circular(CircularBuffer *cb, int value) {
// // Your logic using only pointer access
// }
// int main() {
// int n, k;
// scanf("%d %d", &n, &k);
// CircularBuffer cb = { .head = 0, .tail = 0, .count = 0, .capacity = n };
// for (int i = 0; i < k; i++) {
// int val;
// scanf("%d", &val);
// insert_circular(&cb, val);
// }
// for (int i = 0; i < cb.count; i++) {
// printf("%d", cb.buffer[i]);
// if(i < cb.count-1){
// printf(" ");
// }
// }
// return 0;
// }
typedef struct{
int buffer[100];
int head;
int tail;
int count;
int capacity;
}CircularBuffer;
void insert_circular(CircularBuffer *cb, int value){
if(cb->count == cb->capacity)
return;
cb->buffer[cb->head]= value;
cb->head = (cb->head+1)%cb->capacity;
cb->count++;
}
int main(){
int n,k;
scanf("%d %d",&n,&k);
CircularBuffer cb = { .head =0, .tail=0, .count =0, .capacity = n
};
for( int i=0;i<k;i++){
int val;
scanf("%d", &val);
insert_circular(&cb, val);
}
for(int i=0;i<cb.count;i++){
printf("%d ",cb.buffer[i]);
// if(i<cb.count-1){
// printf(" ");
// }
}
return 0;
}
Input
5 5 10 20 30 40 50
Expected Output
10 20 30 40 50