DataBuffer Fixed Buffer Init

#include <iostream>
using namespace std;

// Write your DataBuffer class here
class DataBuffer {
private:
    int size;              // Effective buffer size (1–20)
    int buffer[20];        // Fixed-size internal storage
    int writeIndex;        // Next write position

public:
    DataBuffer(int s){
        if (s < 1) this->size = 1;
        else if(s > 20) this->size = 20;
        else this->size = s;

        for (int i = 0; i < 20; ++i){
            this->buffer[i] = 0;
        }
        this->writeIndex = 0;
    }

    void push(int v){
        if (this->writeIndex < size) this->buffer[writeIndex++] = v;
    }

    void print() {
        for (int i = 0; i < writeIndex; i++) {
            cout << buffer[i];
            if (i + 1 < writeIndex) {
                cout << " ";
            }
        }
    }
};
int main() {
    int s, n;
    cin >> s >> n;

    DataBuffer buf(s);

    for (int i = 0; i < n; i++) {
        int x;
        cin >> x;
        buf.push(x);
    }

    buf.print();
    return 0;
}

Solving Approach

 

 

 

 

 

Upvote
Downvote
Loading...

Input

5 7 1 2 3 4 5 6 7

Expected Output

1 2 3 4 5