Submission details
Task:Monikulmio
Sender:3lv11ra
Submission time:2025-11-07 12:01:39 +0200
Language:Python3 (CPython3)
Status:READY
Result:94
Feedback
groupverdictscore
#1ACCEPTED94
Test results
testverdicttimescore
#1ACCEPTED0.02 s10details
#2ACCEPTED0.02 s10details
#3ACCEPTED0.02 s10details
#4ACCEPTED0.02 s10details
#5ACCEPTED0.02 s10details
#6ACCEPTED0.02 s10details
#7ACCEPTED0.02 s10details
#8ACCEPTED0.03 s10details
#9ACCEPTED0.02 s7details
#10ACCEPTED0.03 s7details

Code

from collections import deque

def draw_line(y1, x1, y2, x2, grid):
    dy = y2 - y1
    dx = x2 - x1
    step_y = 0 if dy == 0 else (1 if dy > 0 else -1)
    step_x = 0 if dx == 0 else (1 if dx > 0 else -1)
    y, x = y1, x1
    while (y, x) != (y2, x2):
        if (y, x) == (y1, x1) or (y, x) == (y2, x2):
            grid[y][x] = '*'
        else:
            if step_y == 0:
                grid[y][x] = '='
            elif step_x == 0:
                grid[y][x] = '|'
            elif step_y == step_x:
                grid[y][x] = '\\'
            else:
                grid[y][x] = '/'
        y += step_y
        x += step_x
    grid[y2][x2] = '*'

def fill_outside(grid):
    n, m = len(grid), len(grid[0])
    q = deque([(0,0)])
    visited = [[False]*m for _ in range(n)]
    while q:
        y, x = q.popleft()
        if not (0 <= y < n and 0 <= x < m):
            continue
        if visited[y][x] or grid[y][x] != '.':
            continue
        visited[y][x] = True
        for dy, dx in [(1,0),(-1,0),(0,1),(0,-1)]:
            q.append((y+dy, x+dx))
    for y in range(n):
        for x in range(m):
            if grid[y][x] == '.' and not visited[y][x]:
                grid[y][x] = '#'

def main():
    n, m, k = map(int, input().split())
    points = [tuple(map(int, input().split())) for _ in range(k)]
    points = [(y-1, x-1) for y, x in points]
    grid = [['.' for _ in range(m)] for _ in range(n)]
    for i in range(k):
        y1, x1 = points[i]
        y2, x2 = points[(i + 1) % k]
        draw_line(y1, x1, y2, x2, grid)
    fill_outside(grid)
    for row in grid:
        print(''.join(row))

if __name__ == "__main__":
    main()

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

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 1, col 15: 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 1, col 10: expected '.', got '#'