【競プロ典型90問】「014 - We Used to Sing a Song Together(★3) 」解法
Free-PhotosによるPixabayからの画像

このシリーズではE869120さんによって作成された競プロ典型90問をPythonで解いています。

問題

014 - We Used to Sing a Song Together(★3) 

ポイント

小学生の家と学校の位置をそれぞれ昇順ソートして、左からi人目の小学生を左からi番目の学校に通わせていくことで最適解を得ることができます。

コード

def main():
    import sys
    sys.setrecursionlimit(10 ** 9)
    input = sys.stdin.readline

    N = input()
    list_A = list(map(int, input().split(" ")))  # 小学生の家のリスト
    list_B = list(map(int, input().split(" ")))  # 学校のリスト

    list_A.sort()
    list_B.sort()

    ans = 0
    for i in range(len(list_A)):
        ans += abs(list_A[i] - list_B[i])

    print(ans)


if __name__ == '__main__':
    main()

おすすめの記事