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;
}