#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 if(cb->count==cb->capacity) return; if(cb->head==cb->capacity-1&&cb->tail!=0) { cb->head=0; } cb->buffer[cb->head++]=value; 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; }
Test Cases
Test Results
Input
5 5 10 20 30 40 50
Expected Output
10 20 30 40 50