| Task: | Monikulmio |
| Sender: | MattiDragon |
| Submission time: | 2025-10-29 13:53:13 +0200 |
| Language: | Python3 (CPython3) |
| Status: | READY |
| Result: | 91 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 91 |
| test | verdict | time | score | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.02 s | 10 | details |
| #2 | ACCEPTED | 0.02 s | 10 | details |
| #3 | ACCEPTED | 0.02 s | 10 | details |
| #4 | ACCEPTED | 0.02 s | 10 | details |
| #5 | ACCEPTED | 0.02 s | 10 | details |
| #6 | ACCEPTED | 0.02 s | 7 | details |
| #7 | ACCEPTED | 0.03 s | 10 | details |
| #8 | ACCEPTED | 0.03 s | 10 | details |
| #9 | ACCEPTED | 0.03 s | 7 | details |
| #10 | ACCEPTED | 0.04 s | 7 | details |
Code
def sign(x):
if x > 0:
return 1
if x < 0:
return -1
return 0
height, width, cornerCount = (int(x) for x in input().split())
corners = [tuple(int(x) - 1 for x in input().split()) for _ in range(cornerCount)]
grid = [["#" for _ in range(width)] for _ in range(height)]
prev_y, prev_x = corners[-1]
for y, x in corners:
dy = y - prev_y
dx = x - prev_x
char = "?"
match (sign(dy), sign(dx)):
case (1, 1) | (-1, -1):
char = "\\"
case (1, -1) | (-1, 1):
char = "/"
case (0, 1) | (0, -1):
char = "="
case (1, 0) | (-1, 0):
char = "|"
for t in range(1, max(abs(dy), abs(dx))):
grid[prev_y + sign(dy) * t][prev_x + sign(dx) * t] = char
grid[y][x] = "*"
prev_y, prev_x = y, x
edge = (
[(0, i) for i in range(width)]
+ [(-1, i) for i in range(width)]
+ [(i, 0) for i in range(height)]
+ [(i, -1) for i in range(height)]
)
edge = {(y, x) for (y, x) in edge if grid[y][x] == "#"}
visited: set[tuple[int, int]] = set(edge)
directions = [(0, 1), (0, -1), (1, 0), (-1, 0)]
while edge:
y, x = edge.pop()
grid[y][x] = "."
for dy, dx in directions:
new_pos = (y + dy, x + dx)
if new_pos[0] not in range(height) or new_pos[1] not in range(width):
continue
if new_pos in visited:
continue
visited.add(new_pos)
if grid[new_pos[0]][new_pos[1]] == "#":
edge.add(new_pos)
for row in grid:
print("".join(row))
Test details
Test 1 (public)
Verdict: ACCEPTED
| input |
|---|
| 8 9 5 5 2 2 5 5 8 7 8 ... |
| correct output |
|---|
| ......... ....*.... .../#\... ../###\.. .*#####*. ... |
| user output |
|---|
| ......... ....*.... .../#\... ../###\.. .*#####*. ... |
Test 2 (public)
Verdict: ACCEPTED
| input |
|---|
| 20 40 4 5 10 5 30 15 30 15 10 |
| correct output |
|---|
| ................................. |
| user output |
|---|
| ................................. |
Test 3 (public)
Verdict: ACCEPTED
| input |
|---|
| 20 40 29 8 7 13 2 14 2 9 7 ... |
| correct output |
|---|
| ................................. |
| user output |
|---|
| ................................. |
Test 4 (public)
Verdict: ACCEPTED
| input |
|---|
| 20 40 14 5 12 5 25 8 28 13 28 ... |
| correct output |
|---|
| ................................. |
| user output |
|---|
| ................................. |
Test 5 (public)
Verdict: ACCEPTED
| input |
|---|
| 20 40 12 3 20 7 16 7 9 11 13 ... |
| correct output |
|---|
| ................................. |
| user output |
|---|
| ................................. |
Test 6 (public)
Verdict: ACCEPTED
| input |
|---|
| 9 35 33 2 3 2 8 4 8 4 5 ... |
| correct output |
|---|
| ................................. |
| user output |
|---|
| ................................. |
Feedback: Lines are drawn correctly. Incorrect fill character on row 5, col 16: expected '.', got '#'
Test 7 (public)
Verdict: ACCEPTED
| input |
|---|
| 30 100 69 6 10 6 14 7 14 7 18 ... |
| correct output |
|---|
| ................................. |
| user output |
|---|
| ................................. |
Test 8 (public)
Verdict: ACCEPTED
| input |
|---|
| 40 60 192 11 3 11 5 10 6 11 7 ... |
| correct output |
|---|
| ................................. |
| user output |
|---|
| ................................. |
Test 9 (public)
Verdict: ACCEPTED
| input |
|---|
| 50 100 142 1 1 1 7 1 11 1 14 ... |
| correct output |
|---|
| *=====*===*==*................... |
| user output |
|---|
| *=====*===*==*................... |
Feedback: Lines are drawn correctly. Incorrect fill character on row 3, col 9: expected '.', got '#'
Test 10 (public)
Verdict: ACCEPTED
| input |
|---|
| 100 100 1000 10 1 4 7 1 4 1 9 ... |
| correct output |
|---|
| ...*====*........................ |
| user output |
|---|
| ...*====*........................ |
Feedback: Lines are drawn correctly. Incorrect fill character on row 4, col 29: expected '.', got '#'
