| t | rects = [] | t | rects = [] |
| while True: | | while True: |
| s = input().rstrip() | | s = input().rstrip() |
| if not s: | | if not s: |
| break | | break |
| x, y, dx, dy, c = s.split() | | x, y, dx, dy, c = s.split() |
| rects.append((int(x), int(y), int(dx), int(dy), c)) | | rects.append((int(x), int(y), int(dx), int(dy), c)) |
| points = {} | | points = {} |
| for x, y, dx, dy, c in rects: | | for x, y, dx, dy, c in rects: |
| if dx > 0: | | if dx > 0: |
| x1, x2 = (x, x + dx - 1) | | x1, x2 = (x, x + dx - 1) |
| else: | | else: |
| x1, x2 = (x + dx, x - 1) | | x1, x2 = (x + dx, x - 1) |
| if dy > 0: | | if dy > 0: |
| y1, y2 = (y, y + dy - 1) | | y1, y2 = (y, y + dy - 1) |
| else: | | else: |
| y1, y2 = (y + dy, y - 1) | | y1, y2 = (y + dy, y - 1) |
| for i in range(x1, x2 + 1): | | for i in range(x1, x2 + 1): |
| for j in range(y1, y2 + 1): | | for j in range(y1, y2 + 1): |
| points[i, j] = c | | points[i, j] = c |
| if not points: | | if not points: |
| exit() | | exit() |
| xs = [x for x, _ in points] | | xs = [x for x, _ in points] |
| ys = [y for _, y in points] | | ys = [y for _, y in points] |
| min_x, max_x = (min(xs), max(xs)) | | min_x, max_x = (min(xs), max(xs)) |
| min_y, max_y = (min(ys), max(ys)) | | min_y, max_y = (min(ys), max(ys)) |
| for y in range(min_y, max_y + 1): | | for y in range(min_y, max_y + 1): |
| row = [] | | row = [] |
| for x in range(min_x, max_x + 1): | | for x in range(min_x, max_x + 1): |
| row.append(points.get((x, y), '.')) | | row.append(points.get((x, y), '.')) |
| print(''.join(row)) | | print(''.join(row)) |