Submission
Status:
[-SSSSSSSS]
Score: 0
User: getsuki
Problemset: ภูเขา
Language: cpp
Time: 0.001 second
Submitted On: 2024-09-29 13:25:41
#include <stdio.h>
int main() {
int mountainCount;
int mountainSizes[mountainCount + 5];
int mountainsWidth = 0;
int mountainsHeight = 0;
scanf("%d", &mountainCount);
for (int i = 0; i < mountainCount; i++) {
scanf("%d", &mountainSizes[i]);
mountainsWidth += 2 * mountainSizes[i];
if (mountainSizes[i] > mountainsHeight) {
mountainsHeight = mountainSizes[i];
}
}
// printf("%d\n%d %d", mountainCount, mountainsWidth, mountainsHeight);
char mountainArray[mountainsHeight + 5][mountainsWidth + 5];
for (int i = 0; i < mountainsHeight; i++) {
for (int j = 0; j < mountainsWidth; j++) {
mountainArray[i][j] = '.';
}
}
int mountainPhases[mountainsWidth + 5];
int currentPhase = 0;
int heightLeft = 0;
int isAscending = 0;
int isDescending = 0;
int currentHeight = 3;
for (int i = 0; i < mountainsWidth; i++) {
if (heightLeft == 0) {
heightLeft = mountainSizes[currentPhase] * 2;
isAscending = isDescending = mountainSizes[currentPhase];
currentPhase++;
}
if (isAscending > 0) {
mountainArray[currentHeight][i] = '/';
isAscending--;
if (isAscending > 0) {
currentHeight--;
}
} else {
mountainArray[currentHeight][i] = '\\';
isDescending--;
if (isDescending > 0) {
currentHeight++;
}
}
heightLeft--;
}
for (int i = 0; i < mountainsHeight; i++) {
printf("\n");
for (int j = 0; j < mountainsWidth; j++) {
printf("%c", mountainArray[i][j]);
}
}
}