このシリーズでは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()