Submission details
Task:Monikulmio
Sender:OK123
Submission time:2025-11-05 19:18:52 +0200
Language:Python3 (CPython3)
Status:READY
Result:91
Feedback
groupverdictscore
#1ACCEPTED91
Test results
testverdicttimescore
#1ACCEPTED0.02 s10details
#2ACCEPTED0.02 s10details
#3ACCEPTED0.02 s10details
#4ACCEPTED0.02 s10details
#5ACCEPTED0.02 s10details
#6ACCEPTED0.03 s10details
#7ACCEPTED0.04 s10details
#8ACCEPTED0.03 s7details
#9ACCEPTED0.05 s7details
#10ACCEPTED0.08 s7details

Code

n, m, k = map(int, input().split())
 
kords=[]
 
for l in range(k):
    y, x = map(int, input().split())
    kords.append((y, x))
kords.append(kords[0])
 
 
lists = [["." for s in range(m)] for g in range(n)]
 
 
for point in kords:
        (lists[point[0]-1])[point[1]-1]="*"
 
 

import math
 
 

 
             
for i in range(0, k):
    if (kords[i])[0]==(kords[i+1][0]):
        for d in range(min((kords[i])[1], (kords[i+1])[1]), max((kords[i])[1], (kords[i+1])[1])-1):
             (lists[(kords[i])[0]-1])[d]="="
          #kerkki===
    
    if (kords[i])[1]==(kords[i+1][1]):
         for d in range(min((kords[i])[0], (kords[i+1])[0]), max((kords[i])[0], (kords[i+1])[0])-1):
              (lists[d])[(kords[i])[1]-1]="|"
          #merkki |||||||
        
 
    else:
        t=0
        if (kords[i])[0]<(kords[i+1][0]) and (kords[i])[1]<(kords[i+1][1]):
             for d in range(min((kords[i])[0], (kords[i+1])[0]), max((kords[i])[0], (kords[i+1])[0])-1):
                  (lists[d])[min((kords[i])[1], (kords[i+1])[1])+t]="\\"
                  t+=1
        if (kords[i])[0]<(kords[i+1][0]) and (kords[i])[1]>(kords[i+1][1]):
             for d in range(min((kords[i])[0], (kords[i+1])[0]), max((kords[i])[0], (kords[i+1])[0])-1):
                  (lists[d])[max((kords[i])[1], (kords[i+1])[1])-t-2]="/"
                  t+=1
         #merkki \\\
        
        if (kords[i])[0]>(kords[i+1][0]) and (kords[i])[1]<(kords[i+1][1]):
            for d in range(min((kords[i])[0], (kords[i+1])[0]), max((kords[i])[0], (kords[i+1])[0])-1):
                (lists[d])[max((kords[i])[1], (kords[i+1])[1])-t-2]="/"
                t+=1
        if (kords[i])[0]>(kords[i+1][0]) and (kords[i])[1]>(kords[i+1][1]):
             for d in range(min((kords[i])[0], (kords[i+1])[0]), max((kords[i])[0], (kords[i+1])[0])-1):
                  (lists[d])[min((kords[i])[1], (kords[i+1])[1])+t]="\\"
                  t+=1
            
         #merkki \\\
 
#täyttö:
kords.sort
for j in range(n):
    t=0
    for l in range(m):
         if (lists[j])[l]=="*" or (lists[j])[l]=="/" or (lists[j])[l]=="\\" or (lists[j])[l]=="|":
              t+=1
          
         elif t%2!=0:
              if lists[j].count("*")==2 and lists[j-1].count(".")==len(lists[j-1]):
                    continue

              if (lists[j])[l]!="=" and (lists[j])[l]!="*" and (lists[j])[l]!="/" and (lists[j])[l]!="\\" and lists[j].count("*")!=2:
                 if lists[j].count("*")!=1 and lists[j].count("=")==0:
                  (lists[j])[l]="#" 
                 elif lists[j].count("|")==1 and lists[j].count("=")==0:
                  (lists[j])[l]="#"

                  

for j in range(1, n-1):
    for i in range(1, m-1):
        if (lists[j])[i]==".":
            if (lists[j])[i+1]=="#" or (lists[j])[i-1]=="#" or (lists[j+1])[i]=="#" or (lists[j-1])[i]=="#":
                (lists[j])[i]="#"
for j in reversed(range(1, n-1)):
    for i in reversed(range(1, m-1)):
        if (lists[j])[i]==".":
            if (lists[j])[i+1]=="#" or (lists[j])[i-1]=="#" or (lists[j+1])[i]=="#" or (lists[j-1])[i]=="#":
                (lists[j])[i]="#"

              


 
for j in range(n):
    for l in range(m):
        print((lists[j])[l],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
......... 
....*.... 
.../#\... 
../###\.. 
.*#####*. 
...

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

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

Feedback: Lines are drawn correctly. Incorrect fill character on row 2, col 2: 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 43, col 18: 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 6: expected '#', got '.'