Submission

Status:
[PPPPPPPPP]

Score: 100

User: Spongebob

Problemset: ภูเขา

Language: c

Time: 0.002 second

Submitted On: 2024-10-07 20:51:06

/*
#include <stdio.h>

int main () {
    //w = h*2
    int N, col = 0, max_height, offset = 0, y;
    
    scanf("%d", &N);
    
    int mountains_height[N];
    
    if (N >= 1) {
       scanf("%d", &mountains_height[0]);
       col += mountains_height[0] * 2;
       max_height = mountains_height[0];
    }
    for (int i = 1; i < N; i++) {
        scanf("%d", &mountains_height[i]);
        col += mountains_height[i] * 2;
        max_height = mountains_height[i] > max_height ? mountains_height[i] : max_height;
    }
    
    // initail grid
    char grid[max_height][col+1];
    // set default value of the grid
    for (int i = 0; i < max_height; i++) {
        for (int j = 0; j < col; j++) {
            grid[i][j] = '.';
        }
        grid[i][col] = '\0';
    }
    
    // pot graph
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < mountains_height[i]; j++) {
            y = max_height - j - 1;
            grid[y][j + offset] = '/';
            y = j + (max_height - mountains_height[i]);
            grid[y][j + offset + mountains_height[i]] = '\\';
        }
        offset += mountains_height[i] * 2;
    }
    
    
    // print out the grid
    for (int i = 0; i < max_height; i++) {
        printf("%s\n", grid[i]);
    }
    
    return 0;
}
*/

#include <stdio.h>

int main () {
    int N, h_max, times;
    scanf("%d", &N);
    int h_mount[N];
    if (N >= 1) {
       scanf("%d", &h_mount[0]);
       h_max = h_mount[0];
    }
    for (int i = 1; i < N; i++) {
        scanf("%d", &h_mount[i]);
        h_max = h_mount[i] > h_max ? h_mount[i] : h_max;
    }
    
    for (int i = 0; i < h_max; i++) {
        for (int j = 0; j < N; j++) {
            // outer . ;
            times = (h_mount[j] - 1 - i + h_max - h_mount[j] > h_mount[j]) ? h_mount[j] : (h_mount[j] - 1 - i + h_max - h_mount[j]);
            for (int k = 0; k < times; k++) {
                printf(".");
            }
            // /
            if ((h_mount[j]-(h_max - i)) >= 0) {
               printf("/");
            }
            // inner .
            for (int k = 0; k < (h_mount[j]-(h_max - i)) * 2; k++) {
                printf(".");
            }
            // \ ;
            if ((h_mount[j]-(h_max - i)) >= 0) {
               printf("\\");
            }
            // outer .
            for (int k = 0; k < times; k++) {
                printf(".");
            }
        }
        printf("\n");
    }
    
    return 0;
}