Submission

Status:

P----

Subtask/Task Score:

20/100

Score: 20

User: 38408

Problemset: ชั้นหนังสือ

Language: cpp

Time: 0.036 second

Submitted On: 2026-09-23 14:00:54

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>

using namespace std;

int main() {
    int L, N;
    cin >> L >> N;

    vector<string> books;

    for (int i = 0; i < N; i++) {
        int K;
        string S;

        cin >> K >> S;

        for (int j = 0; j < K; j++) {
            books.push_back(S);
        }
    }

    sort(books.begin(), books.end());


    cout << "+";
    for (int i = 0; i < books.size(); i++) {
        cout << "-+";
    }
    cout << endl;

    for (int row = 0; row < L; row++) {
        cout << "|";

        for (int i = 0; i < books.size(); i++) {

            string book = books[i];

            // เล่มคู่กลับหัว
            if (i % 2 == 1) {
                reverse(book.begin(), book.end());
            }

            if (row < book.length()) {
                cout << book[row];
            } else {
                cout << ".";
            }

            cout << "|";
        }

        cout << '\n';
    }


    cout << "+";
    for (int i = 0; i < books.size(); i++) {
        cout << "-+";
    }

    return 0;
}