Submission details
Task:Monikulmio
Sender:lukarantalainen
Submission time:2025-11-04 18:52:26 +0200
Language:Python3 (CPython3)
Status:READY
Result:0
Feedback
groupverdictscore
#10
Test results
testverdicttimescore
#10.02 s0details
#20.02 s0details
#30.02 s0details
#40.02 s0details
#50.02 s0details
#60.02 s0details
#70.04 s0details
#80.04 s0details
#90.10 s0details
#100.69 s0details

Code

s = input()

inputlist = [int(x) for x in s.split()]

n = inputlist[0]
m = inputlist[1]
k = inputlist[2]

for i in range(int(k)):
    s = input()
    for item in s.split():
        inputlist.append(int(item))

print(inputlist)

xlist = [x for index, x in enumerate(inputlist) if index>2 and index%2!=0]
ylist = [y for index, y in enumerate(inputlist) if index>2 and index%2==0]

coordlist = [(x, y) for x, y in zip(xlist, ylist)]

def map_borders():
    rowlist = []
    collist = []
    backslash = []
    slash = []

    prevcoord = coordlist[0]

    for i in range(1, len(coordlist)+1):
        
        if i >= len(coordlist):
            currentcoord = coordlist[0]
            prevcoord = coordlist[-1]
        else:
            currentcoord = coordlist[i]

        if currentcoord[0] == prevcoord[0]:
            if prevcoord[1] < currentcoord[1]:
                for x in range(prevcoord[1]+1, currentcoord[1]):
                    currentcoords = (currentcoord[0], x)
                    rowlist.append(currentcoords)
            else:
                for x in range(currentcoord[1], prevcoord[1]):
                    currentcoords = (currentcoord[0], x)
                    rowlist.append(currentcoords)

        elif currentcoord[1] == prevcoord[1]:
            if prevcoord[0] < currentcoord[0]:
                for y in range(prevcoord[0]+1 , currentcoord[0]):
                    currentcoords = (y, currentcoord[1])
                    collist.append(currentcoords)
            else:
                for y in range(currentcoord[0], prevcoord[0]):
                    currentcoords = (y, currentcoord[1])
                    collist.append(currentcoords)
 
        elif prevcoord[1] < currentcoord[1]: #to the right
            distance = abs(prevcoord[0]-currentcoord[0])
            if prevcoord[0] < currentcoord[0]: #down right \
                for i in range(1, distance):
                    currentcoords = (prevcoord[0]+i, prevcoord[1]+i)
                    backslash.append(currentcoords)
            elif prevcoord[0] > currentcoord[0]: #up right /
                for i in range(1, distance):
                    currentcoords = (prevcoord[0]-i, prevcoord[1]+i)
                    slash.append(currentcoords)

        elif prevcoord[1] > currentcoord[1]: #to the left
            distance = abs(prevcoord[0]-currentcoord[0])
            if prevcoord[0] < currentcoord[0]: #down left /
                for i in range(1, distance):
                    currentcoords = (prevcoord[0]+i, prevcoord[1]-i)
                    slash.append(currentcoords)
            elif prevcoord[0] > currentcoord[0]: #up left \
                for i in range(1, distance):
                    currentcoords = (prevcoord[0]-i, prevcoord[1]-i)
                    backslash.append(currentcoords)
        
        prevcoord = currentcoord

    return [rowlist, collist, backslash, slash]



def draw_rows():
    cont = map_borders()

    rowlist = cont[0]
    collist = cont[1]
    backslash = cont[2]
    slash = cont[3]

    

    for row in range(1, n+1):
        currentrow = ["." for x in range(m)]

        border = False

        for col in range(1, m+1):

            if (row, col) in coordlist:
                currentrow[col-1] = "*"

            elif (row, col) in rowlist:
                currentrow[col-1] = "="
            
            elif (row, col) in collist:
                currentrow[col-1] = "|"

            elif (row, col) in slash:
                currentrow[col-1] = "/"
            
            elif (row, col) in backslash:
                currentrow[col-1] = '\\'

            if border == False:
                if currentrow[col-1] == "*" or currentrow[col-1] == "=" or currentrow[col-1] == "|" or currentrow[col-1] == "/" or currentrow[col-1] == "\\":
                    if ((row-1, col) in collist or (row-1, col-1) in collist or (row-1, col+1) in collist or (row-1, col) in coordlist
                         or (row-1, col) in slash or (row-1, col-1) in slash or (row-1, col+1) in slash  or (row-1, col-1) in coordlist
                         or (row-1, col-1) in backslash or (row-1, col) in backslash or (row-1, col+1) in backslash or (row-1, col+1) in coordlist):
                            border = True

            elif border == True:
                if currentrow[col-1] == ".":
                    currentrow[col-1] = "#"

                elif currentrow[col-1] == "*" or currentrow[col-1] == "|" or currentrow[col-1] == "/" or currentrow[col-1] == "\\":
                        border = False
            
        print("".join(currentrow))

draw_rows()

Test details

Test 1 (public)

Verdict:

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

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

user output
[8, 9, 5, 5, 2, 2, 5, 5, 8, 7,...

Feedback: Incorrect length on line 1: expected 9, got 3

Test 2 (public)

Verdict:

input
20 40 4
5 10
5 30
15 30
15 10

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

user output
[20, 40, 4, 5, 10, 5, 30, 15, ...

Feedback: Incorrect length on line 1: expected 40, got 4

Test 3 (public)

Verdict:

input
20 40 29
8 7
13 2
14 2
9 7
...

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

user output
[20, 40, 29, 8, 7, 13, 2, 14, ...

Feedback: Incorrect length on line 1: expected 40, got 4

Test 4 (public)

Verdict:

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

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

user output
[20, 40, 14, 5, 12, 5, 25, 8, ...

Feedback: Incorrect length on line 1: expected 40, got 4

Test 5 (public)

Verdict:

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

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

user output
[20, 40, 12, 3, 20, 7, 16, 7, ...

Feedback: Incorrect length on line 1: expected 40, got 4

Test 6 (public)

Verdict:

input
9 35 33
2 3
2 8
4 8
4 5
...

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

user output
[9, 35, 33, 2, 3, 2, 8, 4, 8, ...

Feedback: Incorrect length on line 1: expected 35, got 3

Test 7 (public)

Verdict:

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

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

user output
[30, 100, 69, 6, 10, 6, 14, 7,...

Feedback: Incorrect length on line 1: expected 100, got 4

Test 8 (public)

Verdict:

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

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

user output
[40, 60, 192, 11, 3, 11, 5, 10...

Feedback: Incorrect length on line 1: expected 60, got 4

Test 9 (public)

Verdict:

input
50 100 142
1 1
1 7
1 11
1 14
...

correct output
*=====*===*==*...................

user output
[50, 100, 142, 1, 1, 1, 7, 1, ...

Feedback: Incorrect length on line 1: expected 100, got 4

Test 10 (public)

Verdict:

input
100 100 1000
10 1
4 7
1 4
1 9
...

correct output
...*====*........................

user output
[100, 100, 1000, 10, 1, 4, 7, ...

Feedback: Incorrect length on line 1: expected 100, got 5