n | mas = [] | n | buf = [] |
| (minx, miny, maxx, maxy) = (0, 0, 0, 0) | | (minx, miny, maxx, maxy) = (0, 0, 0, 0) |
| while (s := input()): | | while (s := input()): |
t | cor = list(map(int, s.split()[:-1])) | t | tmp = list(map(int, s.split()[:-1])) |
| if cor[2] != 0 and cor[3] != 0: | | if tmp[2] != 0 and tmp[3] != 0: |
| if cor[2] < 0: | | if tmp[2] < 0: |
| cor[0] += cor[2] | | tmp[0] += tmp[2] |
| cor[2] = 0 - cor[2] | | tmp[2] = 0 - tmp[2] |
| if cor[3] < 0: | | if tmp[3] < 0: |
| cor[1] += cor[3] | | tmp[1] += tmp[3] |
| cor[3] = 0 - cor[3] | | tmp[3] = 0 - tmp[3] |
| maxx = max(maxx, cor[0] + cor[2]) | | maxx = max(maxx, tmp[0] + tmp[2]) |
| maxy = max(maxy, cor[1] + cor[3]) | | maxy = max(maxy, tmp[1] + tmp[3]) |
| mas.append((cor, s.split()[-1])) | | buf.append((tmp, s.split()[-1])) |
| minx = min((i[0][0] for i in mas)) | | minx = min((i[0][0] for i in buf)) |
| miny = min((i[0][1] for i in mas)) | | miny = min((i[0][1] for i in buf)) |
| image = [['.' for i in range(maxx - minx)] for j in range(maxy - miny)] | | ans = [['.' for i in range(maxx - minx)] for j in range(maxy - miny)] |
| | | for i in buf: |
| | | tmp = i[0] |
| | | for j in range(tmp[1] - miny, tmp[1] - miny + tmp[3]): |
| | | for k in range(tmp[0] - minx, tmp[0] - minx + tmp[2]): |
| | | ans[j][k] = i[1] |
| for i in mas: | | for i in ans: |
| cor = i[0] | | |
| for j in range(cor[1] - miny, cor[1] - miny + cor[3]): | | |
| for k in range(cor[0] - minx, cor[0] - minx + cor[2]): | | |
| image[j][k] = i[1] | | |
| for i in image: | | |
| print(*i, sep='') | | print(*i, sep='') |