有什么区别?

问题描述 投票:0回答:0

Codeforces 中有一个问题在谈论“使 n 个礼物中的糖果和橘子的数量相等。你可以一次吃掉每个礼物中的一颗糖果或一个橘子。你需要找到使所有礼物相等所需的最少移动次数送了礼物。” 问题的正确解法是这样

for _ in range(int(input())): 
    n = int(input())
    a = list(map(int, input().split()))
    b = list(map(int, input().split()))
    mina = min(a)
    minb = min(b)
    nrm = 0
    for i in range(n):
        nrm = nrm + max(a[i] - mina, b[i] - minb)
    print(nrm)

我做了另一个解决方案,就在那里

for _ in range(int(input())): 
    n = int(input())
    a = sorted(map(int, input().split()))
    b = sorted(map(int, input().split()))
    nrm = 0
    for i in range(n):
        nrm = nrm + max(a[i] - a[0], b[i] - b[0])
    print(nrm)

但是两个程序的输出结果不一样?

输入

5
3
3 5 6
3 2 3
5
1 2 3 4 5
5 4 3 2 1
3
1 1 1
2 2 2
6
1 1000000000 1000000000 1000000000 1000000000 1000000000
1 1 1 1 1 1
3
10 12 8
7 5 4

第一个解的输出

6
16
0
4999999995
7

我的解决方案的输出

5
10
0
4999999995
6
python difference
© www.soinside.com 2019 - 2024. All rights reserved.