Георгий Попандопуло, 520 группа TrimImage 6493
Губанов Федор, 516 группа TrimImage 5238
tt1"""
2 
3                            Online Python Compiler.
4                Code, Compile, Run and Debug python program online.
5Write your code in this editor and press "Run" button to execute it.
6 
7"""
1import math8import math
29
3def get_corners(coords):10def get_corners(coords):
4    (x, y) = coords[:2]11    (x, y) = coords[:2]
5    (l, w) = coords[2:-1]12    (l, w) = coords[2:-1]
6    if l == 0 or w == 0:13    if l == 0 or w == 0:
7        return None14        return None
8    else:15    else:
9        if l < 0:16        if l < 0:
10            lx = x + l17            lx = x + l
11            rx = x - 118            rx = x - 1
12        elif l > 0:19        elif l > 0:
13            lx = x20            lx = x
14            rx = x + l - 121            rx = x + l - 1
15        if w < 0:22        if w < 0:
16            uy = y + w23            uy = y + w
17            dy = y - 124            dy = y - 1
18        elif w > 0:25        elif w > 0:
19            uy = y26            uy = y
20            dy = y + w - 127            dy = y + w - 1
21        return (lx, dy, rx, uy)28        return (lx, dy, rx, uy)
2229
23def print_matrix(matrix):30def print_matrix(matrix):
24    for i in range(len(matrix)):31    for i in range(len(matrix)):
25        for j in range(len(matrix[0])):32        for j in range(len(matrix[0])):
26            print(matrix[i][j], end='')33            print(matrix[i][j], end='')
27        print('\n')34        print('\n')
2835
29def get_new_coords(bounds, coords):36def get_new_coords(bounds, coords):
30    (lx, dy, rx, uy) = bounds37    (lx, dy, rx, uy) = bounds
31    (x, y) = coords[:2]38    (x, y) = coords[:2]
32    (l, w) = coords[2:-1]39    (l, w) = coords[2:-1]
33    newx = x - lx40    newx = x - lx
34    newy = y - uy41    newy = y - uy
35    if l < 0:42    if l < 0:
36        newx = newx - 143        newx = newx - 1
37    if w < 0:44    if w < 0:
38        newy = newy - 145        newy = newy - 1
39    return (newx, newy)46    return (newx, newy)
4047
41def draw_rects(matrix, rects):48def draw_rects(matrix, rects):
42    for coords in rects:49    for coords in rects:
43        (x, y, l, w, s) = coords50        (x, y, l, w, s) = coords
44        stepx = 1 if l > 0 else -151        stepx = 1 if l > 0 else -1
45        stepy = 1 if w > 0 else -152        stepy = 1 if w > 0 else -1
46        for i in range(y, y + w, stepy):53        for i in range(y, y + w, stepy):
47            for j in range(x, x + l, stepx):54            for j in range(x, x + l, stepx):
48                matrix[i][j] = s55                matrix[i][j] = s
49    return matrix56    return matrix
50rects = []57rects = []
51while True:58while True:
52    coords_sym = input()59    coords_sym = input()
53    if not coords_sym:60    if not coords_sym:
54        break61        break
55    else:62    else:
56        coords_sym = coords_sym.split(' ')63        coords_sym = coords_sym.split(' ')
57        coords_sym = list(map(int, coords_sym[:-1])) + [coords_sym[-1]]64        coords_sym = list(map(int, coords_sym[:-1])) + [coords_sym[-1]]
58        rects.append(coords_sym)65        rects.append(coords_sym)
59first = rects[0]66first = rects[0]
60(lx, dy, rx, uy) = (math.inf, -1 * math.inf, -1 * math.inf, math.inf)67(lx, dy, rx, uy) = (math.inf, -1 * math.inf, -1 * math.inf, math.inf)
61for coords in rects:68for coords in rects:
62    corners = get_corners(coords)69    corners = get_corners(coords)
63    if corners:70    if corners:
64        (lx1, dy1, rx1, uy1) = corners71        (lx1, dy1, rx1, uy1) = corners
65        if lx1 < lx:72        if lx1 < lx:
66            lx = lx173            lx = lx1
67        if dy1 > dy:74        if dy1 > dy:
68            dy = dy175            dy = dy1
69        if rx1 > rx:76        if rx1 > rx:
70            rx = rx177            rx = rx1
71        if uy1 < uy:78        if uy1 < uy:
72            uy = uy179            uy = uy1
73bounds = [lx, dy, rx, uy]80bounds = [lx, dy, rx, uy]
74matrix = []81matrix = []
75for i in range(uy, dy + 1):82for i in range(uy, dy + 1):
76    row = []83    row = []
77    for j in range(lx, rx + 1):84    for j in range(lx, rx + 1):
78        row.append('.')85        row.append('.')
79    matrix.append(row)86    matrix.append(row)
80for coords in rects:87for coords in rects:
81    coords[:2] = get_new_coords(bounds, coords)88    coords[:2] = get_new_coords(bounds, coords)
82matrix = draw_rects(matrix, rects)89matrix = draw_rects(matrix, rects)
83print_matrix(matrix)90print_matrix(matrix)
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op