Submission

Status:

x--xx

Subtask/Task Score:

0/100

Score: 0

User: Quinruj

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

Language: cpp

Time: 0.004 second

Submitted On: 2025-09-27 21:13:31

#include <bits/stdc++.h>
#define pii pair<int,string>
using namespace std;

int cur_col,track,row,m,col,re;
vector<vector<char>> grid;
vector<pii> odd,even; // track

void build(){
    if (track < even.size()){
        for (int i = 0;i<even[track].first;i++,cur_col++){
            if (cur_col%2 == 0){
                for (int j = 0;j<even[track].second.size();j++){
                    grid[j][cur_col] = even[track].second[j];
                }
            }else {
                for (int j = row-1,pos = 0;j>=row-even[track].second.size();j--,pos++){
                    grid[j][cur_col] = even[track].second[pos];
                }
            }
        }
        track++;
    }else {
        for (int i = 0;i<odd[re].first;i++,cur_col++){
            if (cur_col%2 == 0){
                for (int j = 0;j<odd[re].second.size();j++){
                    grid[j][cur_col] = odd[re].second[j];
                }
            }else {
                for (int j = row-1,pos = 0;j>=row-odd[re].second.size();j--,pos++){
                    grid[j][cur_col] = odd[re].second[pos];
                }
            }
        }
        re++;
    }
}

void head_tail(){
    cout << '+';
    for (int i = 0;i<col;i++) cout << "-+";
    cout << '\n';
}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    cin>>row>>m;
    for (int i = 0;i<m;i++){
        int k;string s;cin>>k>>s;
        col += k;
        if (i%2 == 0) even.emplace_back(k,s);
        else odd.emplace_back(k,s);
    }
    grid.resize(row,vector<char> (col,'.'));
    head_tail();
    for (int i = 0;i<m;i++) build();
    for (int i = 0;i<row;i++){
        for (int j = 0;j<col;j++){
            cout << '|' << grid[i][j] << '|';
        }
        cout << '\n';
    }
    head_tail();
}