Please sign in first.
Submission #30174747
Source Code Expand
class Span
def initialize t,v
@t,@v = t,v
@l,@left = 0
@r,@right = 0
end
def travel
travel_s + (@left ? @left.travel_l : 0) + (@right ? @right.travel_r : 0)
end
def travel_s
lo,hi = @l,@r
lo,hi = hi,lo if hi<lo
x = [@v,hi+(@t+lo-hi)/2.0].min
t = @t-(x-hi)-(x-lo)
return 0.5*(x*t*2+(x-lo)*(x+lo)+(x-hi)*(x+hi))
end
def travel_l
travel_s + (@left ? @left.travel_l : 0)
end
def travel_r
travel_s + (@right ? @right.travel_r : 0)
end
def << right
if @right != right
@right = right
accl_r right.accl_l [@v,@l+@t].min
right >> self
end
return right
end
def >> left
if @left != left
@left = left
accl_l left.accl_r [@v,@r+@t].min
left << self
end
return left
end
def accl_l x
accl_r @right.accl_l [@v,@l+@t].min if @right if @l != @l = [x,@v,@r+@t].min
return @l
end
def accl_r x
accl_l @left.accl_r [@v,@r+@t].min if @left if @r != @r = [x,@v,@l+@t].min
return @r
end
end
N = gets.to_i
T = $<.map{|ln| ln.split.map(&:to_i) }.transpose.map{|t,v| Span.new t,v }.inject:<<
p T.travel
Submission Info
| Submission Time | |
|---|---|
| Task | D - AtCoder Express |
| User | ds14050 |
| Language | Ruby (2.7.1) |
| Score | 400 |
| Code Size | 1109 Byte |
| Status | AC |
| Exec Time | 62 ms |
| Memory | 14108 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 400 / 400 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | s1.txt, s2.txt, s3.txt, s4.txt, s5.txt |
| All | in01.txt, in02.txt, in03.txt, in04.txt, in05.txt, in06.txt, in07.txt, in08.txt, in09.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in20.txt, in21.txt, in22.txt, in23.txt, in24.txt, in25.txt, in26.txt, in27.txt, in28.txt, in29.txt, in30.txt, in31.txt, in32.txt, in33.txt, in34.txt, in35.txt, s1.txt, s2.txt, s3.txt, s4.txt, s5.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| in01.txt | AC | 58 ms | 13904 KiB |
| in02.txt | AC | 56 ms | 13892 KiB |
| in03.txt | AC | 55 ms | 13936 KiB |
| in04.txt | AC | 56 ms | 13992 KiB |
| in05.txt | AC | 56 ms | 13916 KiB |
| in06.txt | AC | 57 ms | 14076 KiB |
| in07.txt | AC | 60 ms | 13988 KiB |
| in08.txt | AC | 59 ms | 13996 KiB |
| in09.txt | AC | 58 ms | 13968 KiB |
| in10.txt | AC | 56 ms | 14060 KiB |
| in11.txt | AC | 58 ms | 13984 KiB |
| in12.txt | AC | 62 ms | 13928 KiB |
| in13.txt | AC | 57 ms | 13928 KiB |
| in14.txt | AC | 58 ms | 13968 KiB |
| in15.txt | AC | 58 ms | 13976 KiB |
| in16.txt | AC | 54 ms | 14028 KiB |
| in17.txt | AC | 62 ms | 13916 KiB |
| in18.txt | AC | 54 ms | 13924 KiB |
| in19.txt | AC | 57 ms | 13872 KiB |
| in20.txt | AC | 51 ms | 13996 KiB |
| in21.txt | AC | 57 ms | 14108 KiB |
| in22.txt | AC | 60 ms | 13932 KiB |
| in23.txt | AC | 60 ms | 14032 KiB |
| in24.txt | AC | 57 ms | 14000 KiB |
| in25.txt | AC | 56 ms | 14096 KiB |
| in26.txt | AC | 56 ms | 13912 KiB |
| in27.txt | AC | 57 ms | 14060 KiB |
| in28.txt | AC | 58 ms | 13848 KiB |
| in29.txt | AC | 59 ms | 13804 KiB |
| in30.txt | AC | 57 ms | 13980 KiB |
| in31.txt | AC | 53 ms | 13984 KiB |
| in32.txt | AC | 56 ms | 13936 KiB |
| in33.txt | AC | 60 ms | 14056 KiB |
| in34.txt | AC | 56 ms | 13852 KiB |
| in35.txt | AC | 56 ms | 13932 KiB |
| s1.txt | AC | 56 ms | 13900 KiB |
| s2.txt | AC | 55 ms | 13908 KiB |
| s3.txt | AC | 57 ms | 14020 KiB |
| s4.txt | AC | 55 ms | 13904 KiB |
| s5.txt | AC | 56 ms | 13960 KiB |