Submission details
Task:Monikulmio
Sender:Jimuium
Submission time:2025-11-01 17:52:00 +0200
Language:Python3 (CPython3)
Status:READY
Result:51
Feedback
groupverdictscore
#151
Test results
testverdicttimescore
#1ACCEPTED0.02 s10details
#2ACCEPTED0.08 s10details
#3ACCEPTED0.13 s7details
#4ACCEPTED0.11 s10details
#5ACCEPTED0.09 s7details
#6ACCEPTED0.05 s7details
#7--0details
#8--0details
#9--0details
#10--0details

Code

korkeus, leveys, pisteidenmäärä = input().split(" ") 
pisteet = []
for i in range(int(pisteidenmäärä)):
    y, x = input().split(" ")
    pisteet.append([int(x), int(y)])

merkkikoordinaatit = { "=": [], "*": pisteet, "|": [], "/": [], "\\": [], "#": [] } 

x = 0
y = 1

for i in range(int(pisteidenmäärä)):
    
    edellinenPiste = None
    piste = pisteet[i]
    edellinenPiste = pisteet[i - 1]
        

    if edellinenPiste[x] == piste[x]:
        for j in range( min(edellinenPiste[y], piste[y]) + 1 , max(edellinenPiste[y], piste[y]) ):
            merkkikoordinaatit["|"].append([piste[x], j])

    if edellinenPiste[y] == piste[y]:
        for j in range( min(edellinenPiste[x], piste[x]) + 1 , max(edellinenPiste[x], piste[x]) ):
            merkkikoordinaatit["="].append([j, piste[y]])

    if edellinenPiste[x] < piste[x] and edellinenPiste[y] > piste[y]:
        for j in range(edellinenPiste[x]+1 , piste[x] ):
            merkkikoordinaatit["/"].append([j, edellinenPiste[y] - (j - edellinenPiste[x])])

    if edellinenPiste[x] > piste[x] and edellinenPiste[y] < piste[y]:
        for j in range(piste[x]+1 , edellinenPiste[x] ):
            merkkikoordinaatit["/"].append([j, piste[y] - (j - piste[x])])

    if edellinenPiste[x] < piste[x] and edellinenPiste[y] < piste[y]:
        for j in range(edellinenPiste[x]+1 , piste[x] ):
            merkkikoordinaatit["\\"].append([j, edellinenPiste[y] + (j - edellinenPiste[x])])
     
    if edellinenPiste[x] > piste[x] and edellinenPiste[y] > piste[y]:
        for j in range(piste[x]+1 , edellinenPiste[x] ):
            merkkikoordinaatit["\\"].append([j, piste[y] + (j - piste[x])])

for j in range(1, int(leveys)+1):    
    for i in range(1, int(korkeus)+1):
        vasemmatMerkit = 0
        for vasemmat in range(1, j):
            if [vasemmat, i] in merkkikoordinaatit["/"] or [vasemmat, i] in merkkikoordinaatit["\\"] or [vasemmat, i] in merkkikoordinaatit["|"] or [vasemmat, i] in merkkikoordinaatit["*"]:
                vasemmatMerkit += 1
            
        oikeatMerkit = 0
        for oikeat in range(j+1, int(leveys)+1):
            if [oikeat, i] in merkkikoordinaatit["/"] or [oikeat, i] in merkkikoordinaatit["\\"] or [oikeat, i] in merkkikoordinaatit["|"] or [oikeat, i] in merkkikoordinaatit["*"]:
                oikeatMerkit += 1
        if vasemmatMerkit % 2 == oikeatMerkit % 2 == 1:
            merkkikoordinaatit["#"].append([j, i])

for i in range(1, int(korkeus)+1):
    for j in range(1, int(leveys)+1):
        yläalamerkit = 0
        for yllä in range(1, i):
            if [j, yllä] in merkkikoordinaatit["/"] or [j, yllä] in merkkikoordinaatit["\\"] or [j, yllä] in merkkikoordinaatit["="] or [j, yllä] in merkkikoordinaatit["*"]:
                yläalamerkit += 1
            
        alhaalamerkit = 0
        for alla in range(i+1, int(korkeus)+1):
            if [j, alla] in merkkikoordinaatit["/"] or [j, alla] in merkkikoordinaatit["\\"] or [j, alla] in merkkikoordinaatit["="] or [j, alla] in merkkikoordinaatit["*"]:
                alhaalamerkit += 1
        if yläalamerkit % 2 == alhaalamerkit % 2 == 1:
            merkkikoordinaatit["#"].append([j, i])

tuloste = ""
for i in range(1, int(korkeus)+1):
    rivi = ""
    for j in range(1, int(leveys)+1):
        if [j, i] in merkkikoordinaatit["*"]:
            rivi += "*"
        elif [j, i] in merkkikoordinaatit["="]:
            rivi += "="
        elif [j, i] in merkkikoordinaatit["|"]:
            rivi += "|"
        elif [j, i] in merkkikoordinaatit["/"]:
            rivi += "/"
        elif [j, i] in merkkikoordinaatit["\\"]:
            rivi += "\\"
        elif [j, i] in merkkikoordinaatit["#"]:
            rivi += "#"
        else:
            rivi += "."
    tuloste += rivi + "\n"
print(tuloste)

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

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 9: 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 12: expected '#', got '.'

Test 7 (public)

Verdict:

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

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

user output
(empty)

Test 8 (public)

Verdict:

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

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

user output
(empty)

Test 9 (public)

Verdict:

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

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

user output
(empty)

Test 10 (public)

Verdict:

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

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

user output
(empty)