| Task: | Monikulmio |
| Sender: | rottis |
| Submission time: | 2025-10-27 13:55:50 +0200 |
| Language: | Ruby |
| Status: | READY |
| Result: | 0 |
| group | verdict | score |
|---|---|---|
| #1 | WRONG ANSWER | 0 |
| test | verdict | time | score | |
|---|---|---|---|---|
| #1 | WRONG ANSWER | 0.07 s | 0 | details |
| #2 | WRONG ANSWER | 0.08 s | 0 | details |
| #3 | WRONG ANSWER | 0.08 s | 0 | details |
| #4 | WRONG ANSWER | 0.08 s | 0 | details |
| #5 | WRONG ANSWER | 0.08 s | 0 | details |
| #6 | WRONG ANSWER | 0.08 s | 0 | details |
| #7 | WRONG ANSWER | 0.09 s | 0 | details |
| #8 | WRONG ANSWER | 0.10 s | 0 | details |
| #9 | WRONG ANSWER | 0.12 s | 0 | details |
| #10 | WRONG ANSWER | 0.14 s | 0 | details |
Code
# TODO oudot muodot joissa kaks parallel viivaa
#
# FIX: jos sisällä, niin viiva collision määriä vas. puolella PARITON
# jos ei, parillinen
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] * 2, input[0] * 2])
end
board = []
(n * 2 + 1).times do
board.append("#" * (m * 2 + 1))
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
board[vertices[0][1]][vertices[0][0]] = "*"
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 + 1) || pos[1] >= (n * 2 + 1)
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.each_with_index do |row, idx|
if idx % 2 == 1
next
end
row.chars.each_with_index do |char, chidx|
if chidx % 2 == 1
next
end
print(char)
end
puts
end
Test details
Test 1 (public)
Verdict: WRONG ANSWER
| input |
|---|
| 8 9 5 5 2 2 5 5 8 7 8 ... |
| correct output |
|---|
| ......... ....*.... .../#\... ../###\.. .*#####*. ... |
| user output |
|---|
| .......... .......... .....*.... ..../#\... .../###\.. ... |
Feedback: Incorrect length on line 1: expected 9, got 10
Test 2 (public)
Verdict: WRONG ANSWER
| input |
|---|
| 20 40 4 5 10 5 30 15 30 15 10 |
| correct output |
|---|
| ................................. |
| user output |
|---|
| ................................. |
Feedback: Incorrect length on line 1: expected 40, got 41
Test 3 (public)
Verdict: WRONG ANSWER
| input |
|---|
| 20 40 29 8 7 13 2 14 2 9 7 ... |
| correct output |
|---|
| ................................. |
| user output |
|---|
| ................................. |
Feedback: Incorrect length on line 1: expected 40, got 41
Test 4 (public)
Verdict: WRONG ANSWER
| input |
|---|
| 20 40 14 5 12 5 25 8 28 13 28 ... |
| correct output |
|---|
| ................................. |
| user output |
|---|
| ................................. |
Feedback: Incorrect length on line 1: expected 40, got 41
Test 5 (public)
Verdict: WRONG ANSWER
| input |
|---|
| 20 40 12 3 20 7 16 7 9 11 13 ... |
| correct output |
|---|
| ................................. |
| user output |
|---|
| ................................. |
Feedback: Incorrect length on line 1: expected 40, got 41
Test 6 (public)
Verdict: WRONG ANSWER
| input |
|---|
| 9 35 33 2 3 2 8 4 8 4 5 ... |
| correct output |
|---|
| ................................. |
| user output |
|---|
| ................................. |
Feedback: Incorrect length on line 1: expected 35, got 36
Test 7 (public)
Verdict: WRONG ANSWER
| input |
|---|
| 30 100 69 6 10 6 14 7 14 7 18 ... |
| correct output |
|---|
| ................................. |
| user output |
|---|
| ................................. |
Feedback: Incorrect length on line 1: expected 100, got 101
Test 8 (public)
Verdict: WRONG ANSWER
| input |
|---|
| 40 60 192 11 3 11 5 10 6 11 7 ... |
| correct output |
|---|
| ................................. |
| user output |
|---|
| ................................. |
Feedback: Incorrect length on line 1: expected 60, got 61
Test 9 (public)
Verdict: WRONG ANSWER
| input |
|---|
| 50 100 142 1 1 1 7 1 11 1 14 ... |
| correct output |
|---|
| *=====*===*==*................... |
| user output |
|---|
| ................................. |
Feedback: Incorrect length on line 1: expected 100, got 101
Test 10 (public)
Verdict: WRONG ANSWER
| input |
|---|
| 100 100 1000 10 1 4 7 1 4 1 9 ... |
| correct output |
|---|
| ...*====*........................ |
| user output |
|---|
| ................................. |
Feedback: Incorrect length on line 1: expected 100, got 101
