Submission #365606
Source Code Expand
Map = Struct.new(:m, :h, :w, :t) do
def dijkstra(start, goal)
tree = {start => [0, nil, nil]}
loop do
u, ui = tree.min {|(_,a),(_,b)| a.size == 2 ? 1 : b.size == 2 ? -1 : a[0] <=> b[0] }
break if ui.size != 3 || u == goal
ui.pop
ud = ui[0]
each_neighbor(u) do |n|
alt = ud + yield(u, n)
t = tree[n]
if t.nil?
tree[n] = [alt, u, nil]
elsif alt < t[0]
t[0] = alt
t[1] = u
end
end
end
tree
end
def each_neighbor(node)
y, x = node.divmod(w)
yield node - 1 if x > 0
yield node + 1 if x < w - 1
yield node - w if y > 0
yield node + w if y < h - 1
end
def solve
mm = m.join
z = mm.size
s = mm.index('S')
g = mm.index('G')
(1..t).bsearch {|x|
paths = dijkstra(s, g) {|u, n| mm.getbyte(n) == 35 ? x : 1 }
t < paths[g][0]
} - 1
end
end
i=STDIN
h,w,t=i.gets.split.map(&:to_i)
m=(1..h).map{i.gets.chomp}
p Map.new(m, h, w, t).solve
Submission Info
| Submission Time | |
|---|---|
| Task | C - 壁抜け |
| User | snipsnipsnip |
| Language | Ruby (2.1.5p273) |
| Score | 100 |
| Code Size | 1072 Byte |
| Status | AC |
| Exec Time | 144 ms |
| Memory | 5356 KiB |
Compile Error
./Main.rb:37: warning: assigned but unused variable - z
Judge Result
| Set Name | Sample | Subtask1 | Subtask2 | Subtask3 | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 40 / 40 | 30 / 30 | 30 / 30 | ||||||||
| Status |
|
|
|
|
| Set Name | Test Cases |
|---|---|
| Sample | subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt |
| Subtask1 | subtask0_sample_01.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt |
| Subtask2 | subtask0_sample_01.txt, subtask0_sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt, subtask2_21.txt, subtask2_22.txt, subtask2_23.txt, subtask2_24.txt, subtask2_25.txt, subtask2_26.txt, subtask2_27.txt, subtask2_28.txt, subtask2_29.txt, subtask2_30.txt, subtask2_31.txt, subtask2_32.txt, subtask2_33.txt, subtask2_34.txt, subtask2_35.txt, subtask2_36.txt, subtask2_37.txt, subtask2_38.txt, subtask2_39.txt, subtask2_40.txt |
| Subtask3 | subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt, subtask2_21.txt, subtask2_22.txt, subtask2_23.txt, subtask2_24.txt, subtask2_25.txt, subtask2_26.txt, subtask2_27.txt, subtask2_28.txt, subtask2_29.txt, subtask2_30.txt, subtask2_31.txt, subtask2_32.txt, subtask2_33.txt, subtask2_34.txt, subtask2_35.txt, subtask2_36.txt, subtask2_37.txt, subtask2_38.txt, subtask2_39.txt, subtask2_40.txt, subtask3_41.txt, subtask3_42.txt, subtask3_43.txt, subtask3_44.txt, subtask3_45.txt, subtask3_46.txt, subtask3_47.txt, subtask3_48.txt, subtask3_49.txt, subtask3_50.txt, subtask3_51.txt, subtask3_52.txt, subtask3_53.txt, subtask3_54.txt, subtask3_55.txt, subtask3_56.txt, subtask3_57.txt, subtask3_58.txt, subtask3_59.txt, subtask3_60.txt, subtask3_61.txt, subtask3_62.txt, subtask3_63.txt, subtask3_64.txt, subtask3_65.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| subtask0_sample_01.txt | AC | 67 ms | 5100 KiB |
| subtask0_sample_02.txt | AC | 57 ms | 5100 KiB |
| subtask0_sample_03.txt | AC | 64 ms | 5204 KiB |
| subtask1_01.txt | AC | 66 ms | 5100 KiB |
| subtask1_02.txt | AC | 60 ms | 5100 KiB |
| subtask1_03.txt | AC | 60 ms | 5096 KiB |
| subtask1_04.txt | AC | 61 ms | 5096 KiB |
| subtask1_05.txt | AC | 60 ms | 5100 KiB |
| subtask1_06.txt | AC | 60 ms | 5096 KiB |
| subtask1_07.txt | AC | 59 ms | 5092 KiB |
| subtask1_08.txt | AC | 58 ms | 5096 KiB |
| subtask1_09.txt | AC | 67 ms | 5228 KiB |
| subtask1_10.txt | AC | 61 ms | 5096 KiB |
| subtask1_11.txt | AC | 61 ms | 5100 KiB |
| subtask1_12.txt | AC | 61 ms | 5100 KiB |
| subtask1_13.txt | AC | 60 ms | 5144 KiB |
| subtask1_14.txt | AC | 60 ms | 5096 KiB |
| subtask1_15.txt | AC | 60 ms | 5096 KiB |
| subtask2_16.txt | AC | 61 ms | 5100 KiB |
| subtask2_17.txt | AC | 74 ms | 5100 KiB |
| subtask2_18.txt | AC | 74 ms | 5224 KiB |
| subtask2_19.txt | AC | 73 ms | 5100 KiB |
| subtask2_20.txt | AC | 73 ms | 5268 KiB |
| subtask2_21.txt | AC | 74 ms | 5228 KiB |
| subtask2_22.txt | AC | 73 ms | 5100 KiB |
| subtask2_23.txt | AC | 71 ms | 5096 KiB |
| subtask2_24.txt | AC | 74 ms | 5096 KiB |
| subtask2_25.txt | AC | 64 ms | 5096 KiB |
| subtask2_26.txt | AC | 66 ms | 5100 KiB |
| subtask2_27.txt | AC | 62 ms | 5100 KiB |
| subtask2_28.txt | AC | 59 ms | 5100 KiB |
| subtask2_29.txt | AC | 64 ms | 5096 KiB |
| subtask2_30.txt | AC | 63 ms | 5196 KiB |
| subtask2_31.txt | AC | 61 ms | 5184 KiB |
| subtask2_32.txt | AC | 66 ms | 5096 KiB |
| subtask2_33.txt | AC | 70 ms | 5228 KiB |
| subtask2_34.txt | AC | 64 ms | 5212 KiB |
| subtask2_35.txt | AC | 66 ms | 5228 KiB |
| subtask2_36.txt | AC | 62 ms | 5100 KiB |
| subtask2_37.txt | AC | 68 ms | 5100 KiB |
| subtask2_38.txt | AC | 66 ms | 5096 KiB |
| subtask2_39.txt | AC | 67 ms | 5204 KiB |
| subtask2_40.txt | AC | 68 ms | 5224 KiB |
| subtask3_41.txt | AC | 59 ms | 5100 KiB |
| subtask3_42.txt | AC | 138 ms | 5356 KiB |
| subtask3_43.txt | AC | 106 ms | 5228 KiB |
| subtask3_44.txt | AC | 136 ms | 5272 KiB |
| subtask3_45.txt | AC | 144 ms | 5220 KiB |
| subtask3_46.txt | AC | 108 ms | 5224 KiB |
| subtask3_47.txt | AC | 113 ms | 5224 KiB |
| subtask3_48.txt | AC | 78 ms | 5220 KiB |
| subtask3_49.txt | AC | 120 ms | 5220 KiB |
| subtask3_50.txt | AC | 62 ms | 5220 KiB |
| subtask3_51.txt | AC | 92 ms | 5224 KiB |
| subtask3_52.txt | AC | 85 ms | 5272 KiB |
| subtask3_53.txt | AC | 65 ms | 5220 KiB |
| subtask3_54.txt | AC | 61 ms | 5224 KiB |
| subtask3_55.txt | AC | 61 ms | 5224 KiB |
| subtask3_56.txt | AC | 68 ms | 5100 KiB |
| subtask3_57.txt | AC | 63 ms | 5224 KiB |
| subtask3_58.txt | AC | 139 ms | 5228 KiB |
| subtask3_59.txt | AC | 80 ms | 5224 KiB |
| subtask3_60.txt | AC | 119 ms | 5224 KiB |
| subtask3_61.txt | AC | 63 ms | 5220 KiB |
| subtask3_62.txt | AC | 101 ms | 5200 KiB |
| subtask3_63.txt | AC | 63 ms | 5212 KiB |
| subtask3_64.txt | AC | 140 ms | 5348 KiB |
| subtask3_65.txt | AC | 95 ms | 5224 KiB |