| n | nums = [] | n | |
| points = {} | | points = {} |
| n | while 1: | n | rectangles = [] |
| | | while True: |
| line = input() | | line = input() |
| if not line.strip(): | | if not line.strip(): |
| break | | break |
| n | str = line.split() | n | parts = line.split() |
| if len(str) != 5: | | if len(parts) != 5: |
| continue | | continue |
| n | x, y, a, b, c = str | n | x, y, w, h, char = parts |
| x, y, a, b = (int(x), int(y), int(a), int(b)) | | x, y, w, h = (int(x), int(y), int(w), int(h)) |
| nums.append((x, y, a, b, c)) | | rectangles.append((x, y, w, h, char)) |
| for x, y, a, b, c in nums: | | for x, y, w, h, char in rectangles: |
| if a > 0: | | if w > 0: |
| x_str = range(x, x + a) | | x_range = range(x, x + w) |
| elif a < 0: | | elif w < 0: |
| x_str = range(x + a, x) | | x_range = range(x + w, x) |
| else: | | else: |
| n | x_str = [] | n | x_range = [] |
| if b > 0: | | if h > 0: |
| y_str = range(y, y + b) | | y_range = range(y, y + h) |
| elif b < 0: | | elif h < 0: |
| y_str = range(y + b, y) | | y_range = range(y + h, y) |
| else: | | else: |
| n | y_str = [] | n | y_range = [] |
| for x_i in x_str: | | for xi in x_range: |
| for y_i in y_str: | | for yi in y_range: |
| points[x_i, y_i] = c | | points[xi, yi] = char |
| if not points: | | if not points: |
| print() | | print() |
| else: | | else: |
| min_x = min((x for x, y in points)) | | min_x = min((x for x, y in points)) |
| max_x = max((x for x, y in points)) | | max_x = max((x for x, y in points)) |
| min_y = min((y for x, y in points)) | | min_y = min((y for x, y in points)) |
| max_y = max((y for x, y in points)) | | max_y = max((y for x, y in points)) |
| t | distance_x = max_x - min_x + 1 | t | width = max_x - min_x + 1 |
| distance_y = max_y - min_y + 1 | | height = max_y - min_y + 1 |
| matr = [['.' for _ in range(distance_x)] for _ in range(distance_y)] | | grid = [['.' for _ in range(width)] for _ in range(height)] |
| for (x_i, y_i), c in points.items(): | | for (x, y), char in points.items(): |
| matr[y_i - min_y][x_i - min_x] = c | | grid[y - min_y][x - min_x] = char |
| for row in matr: | | for row in grid: |
| print(''.join(row)) | | print(''.join(row)) |