[伯俊]14400コンビニ.


質問する

に答える
  • の各点の距離の和を最小にするために、与えられた点をそれぞれx,yに並べ替え、中間値を取ればよい.
  • sort関数とlambda式を使用してx、yをそれぞれソートし、mid x、mid yに中間値を格納します.
  • 題では、所定の距離で計算され、印刷される.
  • コード#コード#
    import sys
    
    def solution() :
        n = int(sys.stdin.readline())
        locations = [list(map(int, sys.stdin.readline().split())) for _ in range(n)]
        mid_x = sorted(locations, key = lambda x : x[0])[n // 2][0]
        mid_y = sorted(locations, key = lambda x : x[1])[n // 2][1]
        
        res = 0
        
        for l in locations :
            res += (abs(mid_x - l[0]) + abs(mid_y - l[1]))
        
        print(res)
        
    solution()