Submission details
Task:Monikulmio
Sender:NicholasAhman
Submission time:2025-11-06 17:58:47 +0200
Language:Python3 (PyPy3)
Status:READY
Result:76
Feedback
groupverdictscore
#1ACCEPTED76
Test results
testverdicttimescore
#1ACCEPTED0.04 s10details
#2ACCEPTED0.06 s10details
#3ACCEPTED0.06 s7details
#4ACCEPTED0.06 s7details
#5ACCEPTED0.06 s7details
#6ACCEPTED0.05 s7details
#7ACCEPTED0.07 s7details
#8ACCEPTED0.08 s7details
#9ACCEPTED0.07 s7details
#10ACCEPTED0.11 s7details

Code

i1=input("")
i1_list=i1.split(" ")
 
height=int(i1_list[0])
width=int(i1_list[1])
corner_count=int(i1_list[2])
 
def draw_line(x1, y1, x2, y2):
    if abs(x1-x2)==abs(y1-y2):
        draw_diag(x1, y1, x2, y2)
    elif x1==x2:
        draw_vertical(x1, y1, x2, y2)
    elif y1==y2:
        draw_horizontal(x1, y1, x2, y2)
 
canvas=[]
 
def draw(x, y, c):
    canvas[y-1][x-1]=c
 
def draw_vertical(x1, y1, x2, y2):
    draw(x1, y1, "*")
    draw(x2, y2, "*")
 
    dir=1
    if y2-y1<0:
        dir=-1
    
    distance = abs(y2-y1)
    for i in range(1,distance):
        draw(x1, y1+dir*i, "|")
 
def draw_horizontal(x1, y1, x2, y2):
    draw(x1, y1, "*")
    draw(x2, y2, "*")
 
    dir=1
    if x2-x1<0:
        dir=-1
    
    distance = abs(x2-x1)
    for i in range(1,distance):
        draw(x1+dir*i, y1, "=")
 
def draw_diag(x1, y1, x2, y2):
    x_dir=1
    if x2-x1<0:
        x_dir = -1
    
    y_dir=1
    if y2-y1<0:
        y_dir=-1
    
    distance = abs(x2-x1)
 
    draw(x1, y1, "*")
    draw(x2, y2, "*")
 
    char="/"
    if x_dir==y_dir:
        char="\\"
 
    for i in range(1,distance):
        draw(x1+x_dir*i, y1+y_dir*i, char)
 
for i in range(height):
    canvas.append([])
    arr = canvas[len(canvas)-1]
    for j in range(width):
        arr.append(".")
 
points=[]
last_pidx=-1
 
for i in range(corner_count):
    point=input("")
    point2=point.split(" ")
    x=int(point2[1])
    y=int(point2[0])
 
    points.append([x,y])
 
for i in range(len(points)):
    if last_pidx > -1:
        p=points[last_pidx]
        draw_line(p[0], p[1], points[i][0], points[i][1])
        last_pidx=i
    else:
        last_pidx=0
 
last = points[len(points)-1]
draw_line(points[0][0], points[0][1], last[0], last[1])

right_of_edge = False
above_edge = False
below_edge = False
for i in range(height):
    right_of_edge = False
    for j in range(width):
        above_edge = False
        below_edge = False
        if canvas[i][j] != ".":
            right_of_edge = True
        else:
            for k in range(height):
                if k==i:
                    continue

                if canvas[k][j] != "." and k<i:
                    above_edge = True
                elif canvas[k][j] != "." and k>i:
                    below_edge = True
            if right_of_edge and above_edge and below_edge:
                canvas[i][j] = "#"


for i in range(height):
        print("".join(canvas[i]))

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

Feedback: Lines are drawn correctly. Incorrect fill character on row 10, 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 6, col 14: 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 8, col 31: 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 5, col 6: 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 11, col 32: 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 4, col 27: 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 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 2, col 9: expected '.', got '#'