Submission #1241658


Source Code Expand

N = int(input())
start, goal = map(int,input().split())
input()

le = []
ri = []

for i in range(N-1):
	l, r = map(int,input().split())
	le.append(l)
	ri.append(r)

le.append(goal)
ri.append(goal)

lv = [[start, 0]]
rv = [[start, 0]]

lnow = start
rnow = start

lv.append([le[0]-lnow, 1])
rv.append([ri[0]-rnow, 1])

lnow = le[0]
rnow = ri[0]

for l, r in zip(le[1:], ri[1:]):
	
	if lv[-1][0]/lv[-1][1] < l - lnow:
		lp = lv.pop()
		lv.append([lp[0]+l-lnow, lp[1]+1])
	else:
		lv.append([l - lnow, 1])
	lnow = l

	if rv[-1][0]/rv[-1][1] > r - rnow:
		rp = rv.pop()
		rv.append([rp[0]+r-rnow, rp[1]+1])
	else:
		rv.append([r - rnow, 1])
	rnow = r

root = []
s1 = 0
s2 = 0
for i in range(len(lv)):
	lv[i][1] += s1
	s1 = lv[i][1]
	lv[i][0] += s2
	s2 = lv[i][0]
s1 = 0
s2 = 0
for i in range(len(rv)):
	rv[i][1] += s1
	s1 = rv[i][1]
	rv[i][0] += s2
	s2 = rv[i][0]

lp = 1
rp = 1
mid = []
while lp<len(lv) and rp<len(rv):
	if lv[lp][1] < rv[rp][1]:
		if rv[rp-1][0]+(rv[rp][0]-rv[rp-1][0])/(rv[rp][1]-rv[rp-1][1])*(lv[lp][1] - rv[rp-1][1]) <= lv[lp][0]:
			mid.append(lv[lp])
			rv[rp-1] = lv[lp]
		lp += 1
	else:
		if lv[lp-1][0]+(lv[lp][0]-lv[lp-1][0])/(lv[lp][1]-lv[lp-1][1])*(rv[rp][1] - lv[lp-1][1]) >= rv[rp][0]:
			mid.append(rv[rp])
			lv[lp-1] = rv[rp]
		rp += 1

res = 0
now = [start, 0]

from math import sqrt

for i in mid:
	res += sqrt((i[0]-now[0])**2 + (i[1]-now[1])**2)
	now = i

print(res)















Submission Info

Submission Time
Task D - レースゲーム
User chahan69
Language Python (3.4.3)
Score 0
Code Size 1515 Byte
Status WA
Exec Time 1542 ms
Memory 52668 KB

Judge Result

Set Name All
Score / Max Score 0 / 100
Status
AC × 9
WA × 17
Set Name Test Cases
All 00_sample1.txt, 00_sample2.txt, 01_rnd_large_00.txt, 01_rnd_large_01.txt, 01_rnd_large_02.txt, 01_rnd_small_00.txt, 01_rnd_small_01.txt, 01_rnd_small_02.txt, 02_narrowrnd_large_00.txt, 02_narrowrnd_large_01.txt, 02_narrowrnd_small_00.txt, 02_narrowrnd_small_01.txt, 03_zigzag_large_00.txt, 03_zigzag_small_00.txt, 04_middle_large_00.txt, 04_middle_large_01.txt, 04_middle_large_02.txt, 04_middle_small_00.txt, 04_middle_small_01.txt, 04_middle_small_02.txt, 05_turnleft_large_00.txt, 05_turnleft_small_00.txt, 06_turnright_large_00.txt, 06_turnright_small_00.txt, 07_free_large_00.txt, 07_free_small_00.txt
Case Name Status Exec Time Memory
00_sample1.txt AC 18 ms 3284 KB
00_sample2.txt AC 18 ms 3284 KB
01_rnd_large_00.txt WA 1299 ms 43400 KB
01_rnd_large_01.txt WA 1324 ms 43472 KB
01_rnd_large_02.txt WA 1313 ms 43432 KB
01_rnd_small_00.txt WA 24 ms 3284 KB
01_rnd_small_01.txt WA 24 ms 3284 KB
01_rnd_small_02.txt WA 24 ms 3284 KB
02_narrowrnd_large_00.txt WA 1405 ms 46260 KB
02_narrowrnd_large_01.txt WA 1432 ms 46088 KB
02_narrowrnd_small_00.txt WA 24 ms 3284 KB
02_narrowrnd_small_01.txt WA 24 ms 3284 KB
03_zigzag_large_00.txt AC 1513 ms 44120 KB
03_zigzag_small_00.txt AC 25 ms 3284 KB
04_middle_large_00.txt WA 1420 ms 46160 KB
04_middle_large_01.txt WA 1374 ms 45948 KB
04_middle_large_02.txt WA 1354 ms 45676 KB
04_middle_small_00.txt WA 25 ms 3284 KB
04_middle_small_01.txt WA 25 ms 3284 KB
04_middle_small_02.txt WA 24 ms 3284 KB
05_turnleft_large_00.txt AC 1542 ms 52668 KB
05_turnleft_small_00.txt AC 25 ms 3284 KB
06_turnright_large_00.txt WA 1446 ms 52328 KB
06_turnright_small_00.txt AC 23 ms 3284 KB
07_free_large_00.txt AC 908 ms 15780 KB
07_free_small_00.txt AC 22 ms 3284 KB