Submission

Status:

PPPPP

Subtask/Task Score:

100/100

Score: 100

User: Newton4566

Problemset: หินงอก

Language: cpp

Time: 0.004 second

Submitted On: 2026-10-06 21:25:06

#include <iostream>
using namespace std;

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

    int n;
    int len[1000];                   // up to 1000 stalactites
    static char canvas[100][5000];   // up to 100 rows, 5000 columns

    cin >> n;

    int totalWidth = 0, maxLen = 0;
    for (int i = 0; i < n; i++) {
        cin >> len[i];
        totalWidth += 2 * len[i];
        if (len[i] > maxLen) maxLen = len[i];
    }

    // fill the canvas with spaces
    for (int r = 0; r < maxLen; r++)
        for (int c = 0; c < totalWidth; c++)
            canvas[r][c] = ' ';

    // draw each stalactite
    int offset = 0;
    for (int k = 0; k < n; k++) {
        int L = len[k];
        for (int i = 1; i <= L; i++) {
            canvas[i - 1][offset + i - 1]     = '\\';
            canvas[i - 1][offset + 2 * L - i] = '/';
        }
        offset += 2 * L;
    }

    // print row by row, trimming trailing spaces
    for (int r = 0; r < maxLen; r++) {
        int last = totalWidth - 1;
        while (last >= 0 && canvas[r][last] == ' ')
            last--;
        for (int c = 0; c <= last; c++)
            cout << canvas[r][c];
        cout << "\n";
    }

    return 0;
}