Submission details
Task:Monikulmio
Sender:Creativedisk
Submission time:2025-10-28 22:46:14 +0200
Language:Python3 (PyPy3)
Status:READY
Result:79
Feedback
groupverdictscore
#1ACCEPTED79
Test results
testverdicttimescore
#1ACCEPTED0.04 s10details
#2ACCEPTED0.07 s10details
#3ACCEPTED0.07 s7details
#4ACCEPTED0.07 s10details
#5ACCEPTED0.07 s7details
#6ACCEPTED0.06 s7details
#7ACCEPTED0.10 s7details
#8ACCEPTED0.09 s7details
#9ACCEPTED0.12 s7details
#10ACCEPTED0.18 s7details

Code

komento = input()
komento = [int(merkki) for merkki in komento.split(" ")]

"""
Luodaan matriisi
"""
matriisi = []
for i in range(komento[0]): ##korkeus
    matriisi.append(["#" for i in range(komento[1])])

"""
Luodaan kolmion kulmapisteet
"""

korkeus = komento[0]
leveys = komento[1]
kulmat = komento[2]


#kulma = [(int(i[0]),int(i[1])) for i in [input().split(" ") for i in range(kulmat)]]
kulma = []
for i in range(kulmat):
    kulma.append([int(a) for a in input().split(" ")])
    matriisi[kulma[i][0]-1][kulma[i][1]-1] = "*"




"""
Analysoidaan kolmiota
"""

def merkinvaihtaja(x,y,x_seuraava,y_seuraava):
        if x < x_seuraava:
            if y < y_seuraava:
                for a in range(x_seuraava-x-1):
                    x += 1
                    y += 1
                    matriisi[y][x] = "\\"
            elif y == y_seuraava:
                for a in range(x_seuraava-x-1):
                    x += 1
                    matriisi[y][x] = "="
            else:
                for a in range(x_seuraava-x-1):
                    x+= 1
                    y-= 1
                    matriisi[y][x] = "/"
        elif x == x_seuraava:
            if y < y_seuraava:
                for a in range(y_seuraava-y-1):
                    y += 1
                    matriisi[y][x] = "|"      
            else:
                for a in range(y-y_seuraava-1):
                    y -= 1
                    matriisi[y][x] = "|"
                    
        elif x > x_seuraava:
            if y < y_seuraava:
                for a in range(x-x_seuraava-1):
                    x-=1
                    y+=1
                    matriisi[y][x] = "/"
            elif y > y_seuraava:
                for a in range(x-x_seuraava-1):
                    x -= 1
                    y -= 1
                    matriisi[y][x] = "\\"
            elif y == y_seuraava:
                for a in range(x-x_seuraava-1):
                    x -= 1
                    matriisi[y][x] = "=" 
            else:
                for a in range(x_seuraava-x-1):
                    x -= 1
                    y += 1
                    matriisi[y][x] = "/"

for i in range(kulmat-1):
        y, x = kulma[i]
        y -= 1
        x -= 1
        y_seuraava, x_seuraava = kulma[i+1]
        y_seuraava -= 1
        x_seuraava -= 1
        #print(x,y,x_seuraava,y_seuraava)
        merkinvaihtaja(x,y,x_seuraava,y_seuraava)
else:
        y, x = kulma[-1]
        y -= 1
        x -= 1
        y_seuraava, x_seuraava = kulma[0]
        y_seuraava -= 1
        x_seuraava -= 1
        #print(x,y,x_seuraava,y_seuraava)
        merkinvaihtaja(x,y,x_seuraava,y_seuraava)
    
"""
Vaihdetaan kuvion sisälle # merkit
"""

def tarkasta(x,y):
    lista = ["-","/","\\","=","|","*"]
    if matriisi[y][x] in lista or matriisi[y][x] == "*":
        return False
    #Vasen
    vasen = 0
    for i in range(x):
        if matriisi[y][i] in lista:
            vasen += 1
        #if matriisi[y][i] == "*":
        #    vasen = 1
    #oikea
    oikea = 0
    for i in range(len(matriisi[y])-1,x,-1):
        if matriisi[y][i] in lista:
            oikea += 1
        #if matriisi[y][i] == "*":
        #    oikea = 1
    
    #yla
    yla = 0
    for i in range(y):
        if matriisi[i][x] in lista:
            yla += 1
        #if matriisi[i][x] == "*":
        #    yla = 1
    
    #ala
    ala = 0
    for i in range(len(matriisi)-1,y,-1):
        if matriisi[i][x] in lista:
            ala += 1
        #if matriisi[i][x] == "*":
        #    ala = 1
    
    horisontaalinen_totuus = yla % 2 == 0 and ala % 2 == 0 or (yla == 0 or ala == 0)
    vaaka_totuus = oikea % 2 == 0 and vasen % 2 == 0 or (vasen == 0 or oikea == 0)

    return horisontaalinen_totuus or vaaka_totuus

for y in range(korkeus):
    for x in range(leveys):
        if tarkasta(x,y):
            matriisi[y][x] = "."
            """
            if matriisi[y][x] != "*" and matriisi[y][x] != "/" and matriisi[y][x] != "\\" and matriisi[y][x] != "==" and matriisi[y][x] != "|":
                matriisi[y][x] = "#"
            """



"""
Tulostetaan matriisi
"""
merkkijono = ""
for i in matriisi:
    for a in i:
        merkkijono += a
    merkkijono += "\n"
print(merkkijono)

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 12, col 11: 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 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 5, col 21: 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 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 13, col 3: 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 '#'