Submission details
Task:Monikulmio
Sender:Toitsu
Submission time:2025-10-27 16:55:24 +0200
Language:Python3 (PyPy3)
Status:READY
Result:73
Feedback
groupverdictscore
#1ACCEPTED73
Test results
testverdicttimescore
#1ACCEPTED0.04 s7details
#2ACCEPTED0.07 s10details
#3ACCEPTED0.07 s7details
#4ACCEPTED0.06 s7details
#5ACCEPTED0.06 s7details
#6ACCEPTED0.05 s7details
#7ACCEPTED0.09 s7details
#8ACCEPTED0.09 s7details
#9ACCEPTED0.10 s7details
#10ACCEPTED0.17 s7details

Code

initial_info = input()

height, width, tip_count = initial_info.split(" ")
height = int(height)
width = int(width)
tips = []

for i in range(int(tip_count)):
    a, b = input().split(" ")
    tips.append((int(b), int(a)))

grid = []

for x in range(1, height + 1):
    row = []

    for y in range(1, width + 1):
        if (y, x) in tips:
            row.append("*")
        else:
            row.append(".")
    
    grid.append(row)


# connect the tips
for i in range(len(tips)):
    x_a, y_a = tips[i]
    x_b, y_b = tips [0 if i == len(tips) - 1 else i + 1]

    x_val = x_a - x_b
    y_val = y_a - y_b

    direction = ""
    distance = max(abs(x_val), abs(y_val)) - 1

    if x_val > 0 and y_val < 0:
        direction = "left_down"
    elif x_val < 0 and y_val < 0:
        direction = "right_down"
    elif x_val < 0 and y_val > 0:
        direction = "right_up"
    elif x_val > 0 and y_val > 0:
        direction = "left_up"
    elif x_val > 0 and y_val == 0:
        direction = "left"
    elif x_val < 0 and y_val == 0:
        direction = "right"
    elif x_val == 0 and y_val < 0:
        direction = "down"
    elif x_val == 0 and y_val > 0:
        direction = "up"
    
    x_a -= 1
    y_a -= 1

    for j in range(1, distance + 1):
        if direction == "left_down":
            grid[y_a + j][x_a - j] = "/"
        elif direction == "right_down":
            grid[y_a + j][x_a + j] = "\\"
        elif direction == "right_up":
            grid[y_a - j][x_a + j] = "/"
        elif direction == "left_up":
            grid[y_a - j][x_a - j] = "\\"
        elif direction == "left":
            grid[y_a][x_a - j] = "="
        elif direction == "right":
            grid[y_a][x_a + j] = "="
        elif direction == "down":
            grid[y_a + j][x_a] = "|"
        elif direction == "up":
            grid[y_a - j][x_a] = "|"


# find the points inside the polygon
for y in range(height):
    for x in range(width):
        if grid[y][x] == ".":
            intersection_count = 0
            
            for i in range(x + 1, width):
                if grid[y][i] in ("*", "|", "/", "\\"):
                    intersection_count += 1
        
            if intersection_count % 2 != 0:
                grid[y][x] = "#"


# print the grid
for row in grid:
    for element in row:
        print(element, end="")
    
    print("")

Test details

Test 1 (public)

Verdict: ACCEPTED

input
8 9 5
5 2
2 5
5 8
7 8
...

correct output
.........
....*....
.../#\...
../###\..
.*#####*.
...

user output
.........
####*....
.../#\...
../###\..
.*#####*.
...

Feedback: Lines are drawn correctly. Incorrect fill character on row 2, col 1: expected '.', got '#'

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
.................................

Feedback: Lines are drawn correctly. Incorrect fill character on row 3, col 31: expected '.', got '#'

Test 4 (public)

Verdict: ACCEPTED

input
20 40 14
5 12
5 25
8 28
13 28
...

correct output
.................................

user output
.................................

Feedback: Lines are drawn correctly. Incorrect fill character on row 16, col 1: expected '.', got '#'

Test 5 (public)

Verdict: ACCEPTED

input
20 40 12
3 20
7 16
7 9
11 13
...

correct output
.................................

user output
.................................

Feedback: Lines are drawn correctly. Incorrect fill character on row 3, col 1: expected '.', got '#'

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 4, col 1: expected '.', got '#'

Test 7 (public)

Verdict: ACCEPTED

input
30 100 69
6 10
6 14
7 14
7 18
...

correct output
.................................

user output
.................................

Feedback: Lines are drawn correctly. Incorrect fill character on row 7, col 1: expected '.', got '#'

Test 8 (public)

Verdict: ACCEPTED

input
40 60 192
11 3
11 5
10 6
11 7
...

correct output
.................................

user output
.................................

Feedback: Lines are drawn correctly. Incorrect fill character on row 2, col 1: expected '.', got '#'

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 5, col 4: 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 2, col 39: expected '.', got '#'