Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: wleo.lwo

Problemset: ห่วงโซ่ (Chain)

Language: cpp

Time: 0.005 second

Submitted On: 2026-10-07 14:53:49

#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main() {
    string s;
    int h;

    cin >> s >> h;

    int H = 2 * h + 1;

    // ห่วงใหม่เลื่อนไปทางขวา 2h-1 ช่อง
    int move = 2 * h - 1;

    // ความกว้างของภาพทั้งหมด
    int W = 2 * h + 1 + (s.size() - 1) * move;

    // สร้างภาพที่มีแต่ .
    vector<string> ans(H, string(W, '.'));

    // วาดทีละตัวอักษร
    for (int k = 0; k < s.size(); k++) {

        int start = k * move;

        for (int i = 0; i < H; i++) {

            int dis;

            if (i <= h) {
                dis = h - i;
            }
            else {
                dis = i - h;
            }

            int left = start + dis;
            int right = start + 2 * h - dis;

            ans[i][left] = s[k];
            ans[i][right] = s[k];
        }
    }

    // แสดงผล
    for (int i = 0; i < H; i++) {
        cout << ans[i] << '\n';
    }

    return 0;
}