可以认为,新的平分点和旧的平分点中一定有一个点是重合的。
这样此题就变成了一个纯模拟的问题了。
写了个脚本,可以过官方的数据。
import sys
f = sys.stdin
D = 10000.0
for s in f.readlines():
n, m = [ int(i) for i in s.split(' ') ]
m += n
b = 0
ans = 0
g = lambda x,y: D*x/y
for a in range(n):
while g(b, m) <= g(a, n):
b += 1
d = min(abs(g(b, m) - g(a, n)), abs(g(b - 1, m) - g(a, n)))
ans += d
print ans