Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include "stdio.h"
- #define INF 99999999
- #define E 0.00000001
- int abs(int a)
- {
- return a < 0 ? -a : a;
- }
- int main()
- {
- int i, j, n, maxd = 1, depth[100], fl = 0, col;
- char c, b[250][250];
- scanf("%i\n%c", &n, &c);
- depth[0] = 1;
- for (i = 1; i < n; ++i)
- {
- scanf("%c", &c);
- if (c == '[')
- {
- depth[i] = abs(depth[i - 1] + 1);
- }
- else
- {
- depth[i] = -abs(depth[i - 1]);
- }
- if (depth[i - 1] < 0)
- ++depth[i];
- if (depth[i] > maxd)
- maxd = depth[i];
- }
- b[0][0] = '+';
- for (i = 1; i < maxd * 2; ++i)
- b[i][0] = '|';
- b[maxd * 2][0] = '+';
- col = 1;
- for (j = 1; j < (n-1); ++j, ++col)
- {
- for (i = 0; i < abs(depth[j]) - 2; ++i)
- b[i][col] = ' ';
- if (depth[j] > 0)
- {
- if (depth[j - 1] > 0)
- {
- b[abs(depth[j]) - 2][col] = '-';
- fl = 1;
- }
- else
- b[abs(depth[j]) - 2][col] = ' ';
- }
- else
- {
- if (depth[j - 1] > 0)
- {
- b[abs(depth[j]) - 2][col] = ' ';
- b[abs(depth[j]) - 1][col] = '-';
- for (i = abs(depth[j]); i < (maxd * 2 - abs(depth[j]) + 1); ++i)
- b[i][col] = ' ';
- b[i][col] = '-';
- ++i;
- for (; i <= maxd * 2; ++i)
- b[i][col] = ' ';
- ++col;
- for (i = 0; i <= maxd * 2; ++i)
- b[i][col] = ' ';
- ++col;
- for (i = 0; i < abs(depth[j]) - 1; ++i)
- b[i][col] = ' ';
- b[abs(depth[j]) - 1][col] = '-';
- for (i = abs(depth[j]); i < (maxd * 2 - abs(depth[j]) + 1); ++i)
- b[i][col] = ' ';
- b[i][col] = '-';
- ++i;
- for (; i <= maxd * 2; ++i)
- b[i][col] = ' ';
- ++col;
- for (i = 0; i < abs(depth[j]) - 2; ++i)
- b[i][col] = ' ';
- }
- if (depth[j + 1] < 0)
- {
- b[abs(depth[j]) - 2][col] = '-';
- fl = 1;
- }
- else
- b[abs(depth[j]) - 2][col] = ' ';
- }
- b[abs(depth[j]) - 1][col] = '+';
- for (i = abs(depth[j]); i < (maxd * 2 - abs(depth[j]) + 1); ++i)
- b[i][col] = '|';
- b[i][col] = '+';
- if (fl)
- {
- ++i;
- b[i][col] = '-';
- fl = 0;
- }
- ++i;
- for (; i <= maxd * 2; ++i)
- b[i][col] = ' ';
- }
- if (depth[n-2] > 0)
- {
- b[abs(depth[n-1]) - 2][col] = ' ';
- b[abs(depth[n-1]) - 1][col] = '-';
- for (i = abs(depth[n-1]); i < (maxd * 2 - abs(depth[j]) + 1); ++i)
- b[i][col] = ' ';
- b[i][col] = '-';
- ++i;
- for (; i <= maxd * 2; ++i)
- b[i][col] = ' ';
- ++col;
- for (i = 0; i <= maxd * 2; ++i)
- b[i][col] = ' ';
- ++col;
- for (i = 0; i < abs(depth[n-1]) - 1; ++i)
- b[i][col] = ' ';
- b[abs(depth[n-1]) - 1][col] = '-';
- for (i = abs(depth[n-1]); i < (maxd * 2 - abs(depth[n-1]) + 1); ++i)
- b[i][col] = ' ';
- b[i][col] = '-';
- ++i;
- for (; i <= maxd * 2; ++i)
- b[i][col] = ' ';
- ++col;
- for (i = 0; i < abs(depth[n-1]) - 2; ++i)
- b[i][col] = ' ';
- }
- b[0][col] = '+';
- for (i = 1; i < maxd * 2; ++i)
- b[i][col] = '|';
- b[maxd * 2][col] = '+';
- ++col;
- for (i = 0; i <= maxd * 2; ++i)
- b[i][col] = 0;
- for (i = 0; i <= maxd * 2; ++i)
- printf("%s\n", b[i]);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement