Submission details
Task:Monikulmio
Sender:rottis
Submission time:2025-10-27 00:27:32 +0200
Language:Ruby
Status:READY
Result:0
Feedback
groupverdictscore
#10
Test results
testverdicttimescore
#10.08 s0details
#20.08 s0details
#30.08 s0details
#40.08 s0details
#50.08 s0details
#60.07 s0details
#70.08 s0details
#80.08 s0details
#90.09 s0details
#100.09 s0details

Code

def get_line_dir(vertex1, vertex2)
  return [
    vertex2[0] <=> vertex1[0],
    vertex2[1] <=> vertex1[1]
  ]
end

def get_line_char(dir)
  #* tarkoittaa monikulmion kärkipistettä.
  #Merkit =, |, / ja \ ilmaisevat monikulmion janat.
  #Merkki # tarkoittaa monikulmion sisäpuolista aluetta.
  #Merkki . ulkona

  if dir[1] == 0
    return "="
  elsif dir[0] == 0
    return "|"
  elsif dir[0] == dir[1]
    return "\\"
  else
    return "/"
  end
end


input = gets.chomp.split(" ").map(&:to_i)

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

vertices = []

k.times do
  input = gets.chomp.split(" ").map(&:to_i)

  vertices.append([input[1], input[0]])
end

board = []

(n + 2).times do
  board.append("#" * (m + 2))
end

idx = 0
vertices.each do |vertex1|
  idx += 1
  vertex2 = vertices[(idx) % vertices.length]

  line_dir = get_line_dir(vertex1, vertex2)

  line_char = get_line_char(line_dir)

  board[vertex1[1]][vertex1[0]] = "*"
  while vertex1 != vertex2
    vertex1 = [vertex1[0] + line_dir[0], vertex1[1] + line_dir[1]]
    board[vertex1[1]][vertex1[0]] = line_char
  end
end

deltas = [
  [-1, 0],
  [1, 0],
  [0, -1],
  [0, 1]
]

propagate_positions = [0, 0]

while propagate_positions.length > 0
  pos = propagate_positions.pop()
  
  if pos[0] < 0 || pos[1] < 0 || pos[0] >= (m + 2) || pos[1] >= (n + 2)
    next
  end
  
  if board[pos[1]][pos[0]] != "#"
    next
  end
  
  board[pos[1]][pos[0]] = "."

  deltas.each do |delta|
    propagate_positions.append([pos[0] + delta[0], pos[1] + delta[1]])
  end
end

board[1...(-1)].each do |row|
  puts row[1...(-1)]
end

Test details

Test 1 (public)

Verdict:

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

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

user output
.........
....*....
.../#\...
../###\..
.|#####*.
...

Feedback: Incorrect character on row 5, col 2: expected '*', got '|'

Test 2 (public)

Verdict:

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

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

user output
.................................

Feedback: Incorrect character on row 5, col 10: expected '*', got '|'

Test 3 (public)

Verdict:

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

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

user output
.................................

Feedback: Incorrect character on row 8, col 7: expected '*', got '='

Test 4 (public)

Verdict:

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

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

user output
.................................

Feedback: Incorrect character on row 5, col 12: expected '*', got '|'

Test 5 (public)

Verdict:

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

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

user output
.................................

Feedback: Incorrect character on row 3, col 20: expected '*', got '\'

Test 6 (public)

Verdict:

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

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

user output
.................................

Feedback: Incorrect character on row 2, col 3: expected '*', got '/'

Test 7 (public)

Verdict:

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

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

user output
.................................

Feedback: Incorrect character on row 6, col 10: expected '*', got '/'

Test 8 (public)

Verdict:

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

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

user output
.................................

Feedback: Incorrect character on row 11, col 3: expected '*', got '\'

Test 9 (public)

Verdict:

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

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

user output
|=====*===*==*...................

Feedback: Incorrect character on row 1, col 1: expected '*', got '|'

Test 10 (public)

Verdict:

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

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

user output
...*====*........................

Feedback: Incorrect character on row 10, col 1: expected '*', got '|'