Губанов Федор, 516 группа TrimImage 5238
Георгий Попандопуло, 520 группа TrimImage 6493
t1"""t
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"""
8import math1import math
92
10def get_corners(coords):3def get_corners(coords):
11    (x, y) = coords[:2]4    (x, y) = coords[:2]
12    (l, w) = coords[2:-1]5    (l, w) = coords[2:-1]
13    if l == 0 or w == 0:6    if l == 0 or w == 0:
14        return None7        return None
15    else:8    else:
16        if l < 0:9        if l < 0:
17            lx = x + l10            lx = x + l
18            rx = x - 111            rx = x - 1
19        elif l > 0:12        elif l > 0:
20            lx = x13            lx = x
21            rx = x + l - 114            rx = x + l - 1
22        if w < 0:15        if w < 0:
23            uy = y + w16            uy = y + w
24            dy = y - 117            dy = y - 1
25        elif w > 0:18        elif w > 0:
26            uy = y19            uy = y
27            dy = y + w - 120            dy = y + w - 1
28        return (lx, dy, rx, uy)21        return (lx, dy, rx, uy)
2922
30def print_matrix(matrix):23def print_matrix(matrix):
31    for i in range(len(matrix)):24    for i in range(len(matrix)):
32        for j in range(len(matrix[0])):25        for j in range(len(matrix[0])):
33            print(matrix[i][j], end='')26            print(matrix[i][j], end='')
34        print('\n')27        print('\n')
3528
36def get_new_coords(bounds, coords):29def get_new_coords(bounds, coords):
37    (lx, dy, rx, uy) = bounds30    (lx, dy, rx, uy) = bounds
38    (x, y) = coords[:2]31    (x, y) = coords[:2]
39    (l, w) = coords[2:-1]32    (l, w) = coords[2:-1]
40    newx = x - lx33    newx = x - lx
41    newy = y - uy34    newy = y - uy
42    if l < 0:35    if l < 0:
43        newx = newx - 136        newx = newx - 1
44    if w < 0:37    if w < 0:
45        newy = newy - 138        newy = newy - 1
46    return (newx, newy)39    return (newx, newy)
4740
48def draw_rects(matrix, rects):41def draw_rects(matrix, rects):
49    for coords in rects:42    for coords in rects:
50        (x, y, l, w, s) = coords43        (x, y, l, w, s) = coords
51        stepx = 1 if l > 0 else -144        stepx = 1 if l > 0 else -1
52        stepy = 1 if w > 0 else -145        stepy = 1 if w > 0 else -1
53        for i in range(y, y + w, stepy):46        for i in range(y, y + w, stepy):
54            for j in range(x, x + l, stepx):47            for j in range(x, x + l, stepx):
55                matrix[i][j] = s48                matrix[i][j] = s
56    return matrix49    return matrix
57rects = []50rects = []
58while True:51while True:
59    coords_sym = input()52    coords_sym = input()
60    if not coords_sym:53    if not coords_sym:
61        break54        break
62    else:55    else:
63        coords_sym = coords_sym.split(' ')56        coords_sym = coords_sym.split(' ')
64        coords_sym = list(map(int, coords_sym[:-1])) + [coords_sym[-1]]57        coords_sym = list(map(int, coords_sym[:-1])) + [coords_sym[-1]]
65        rects.append(coords_sym)58        rects.append(coords_sym)
66first = rects[0]59first = rects[0]
67(lx, dy, rx, uy) = (math.inf, -1 * math.inf, -1 * math.inf, math.inf)60(lx, dy, rx, uy) = (math.inf, -1 * math.inf, -1 * math.inf, math.inf)
68for coords in rects:61for coords in rects:
69    corners = get_corners(coords)62    corners = get_corners(coords)
70    if corners:63    if corners:
71        (lx1, dy1, rx1, uy1) = corners64        (lx1, dy1, rx1, uy1) = corners
72        if lx1 < lx:65        if lx1 < lx:
73            lx = lx166            lx = lx1
74        if dy1 > dy:67        if dy1 > dy:
75            dy = dy168            dy = dy1
76        if rx1 > rx:69        if rx1 > rx:
77            rx = rx170            rx = rx1
78        if uy1 < uy:71        if uy1 < uy:
79            uy = uy172            uy = uy1
80bounds = [lx, dy, rx, uy]73bounds = [lx, dy, rx, uy]
81matrix = []74matrix = []
82for i in range(uy, dy + 1):75for i in range(uy, dy + 1):
83    row = []76    row = []
84    for j in range(lx, rx + 1):77    for j in range(lx, rx + 1):
85        row.append('.')78        row.append('.')
86    matrix.append(row)79    matrix.append(row)
87for coords in rects:80for coords in rects:
88    coords[:2] = get_new_coords(bounds, coords)81    coords[:2] = get_new_coords(bounds, coords)
89matrix = draw_rects(matrix, rects)82matrix = draw_rects(matrix, rects)
90print_matrix(matrix)83print_matrix(matrix)
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op