| Task: | Monikulmio |
| Sender: | NicholasAhman |
| Submission time: | 2025-11-03 15:42:56 +0200 |
| Language: | Python3 (PyPy3) |
| Status: | READY |
| Result: | 76 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 76 |
| test | verdict | time | score | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.04 s | 10 | details |
| #2 | ACCEPTED | 0.04 s | 10 | details |
| #3 | ACCEPTED | 0.04 s | 7 | details |
| #4 | ACCEPTED | 0.04 s | 7 | details |
| #5 | ACCEPTED | 0.04 s | 7 | details |
| #6 | ACCEPTED | 0.04 s | 7 | details |
| #7 | ACCEPTED | 0.06 s | 7 | details |
| #8 | ACCEPTED | 0.06 s | 7 | details |
| #9 | ACCEPTED | 0.06 s | 7 | details |
| #10 | ACCEPTED | 0.09 s | 7 | details |
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
directly_after_edge = False
for i in range(height):
right_of_edge = False
on_horiz_line = False
for j in range(width):
if canvas[i][j] != ".":
only_point=True
for k in range(j+1, width):
if canvas[i][k] != ".":
only_point = False
break
if right_of_edge and canvas[i][j] != "=":
right_of_edge = False
elif not only_point:
right_of_edge = True
elif canvas[i][j] != "." and directly_after_edge:
right_of_edge = False
else:
if directly_after_edge:
directly_after_edge = False
if right_of_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 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 5, col 26: 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 7, col 17: 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 19: 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 14, col 11: 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 3, col 30: 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 2, col 11: 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 '#'
