← 返回题库
初级

Shortest Distance

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
def solve(n, dists_data, q, queries_data):
    n = int(n)
    dists = list(map(int, str(dists_data).split(',')))
    q = int(q)
    queries = str(queries_data).strip().split(',')
    total = sum(dists)
    prefix = [0] * (n + 1)
    for i in range(n):
        prefix[i+1] = prefix[i] + dists[i]
    for qstr in queries[:q]:
        a, b = map(int, qstr.split())
        a -= 1
        b -= 1
        if a > b:
            a, b = b, a
        cw = prefix[b] - prefix[a]
        print(min(cw, total - cw))

示例

输入
solve(5, '1,2,3,4,5', 2, '1 3,2 5')
期望输出
3
6
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码